Python 如何修复函数';cv::matchTemplate';

Python 如何修复函数';cv::matchTemplate';,python,numpy,image-processing,captcha,cv2,Python,Numpy,Image Processing,Captcha,Cv2,我想将验证码字符作为一个字符串读取 这是我想阅读的图像示例: ! 我正在使用的代码: match = cv2.matchTemplate(img_symbol, image, cv2.TM_CCOEFF_NORMED) if len(match): _, quality, _, location = cv2.minMaxLoc(match) if quality > 0.8: result.append({'x': l

我想将验证码字符作为一个字符串读取

这是我想阅读的图像示例:

!

我正在使用的代码:

    match = cv2.matchTemplate(img_symbol, image, cv2.TM_CCOEFF_NORMED)
    if len(match):
        _, quality, _, location = cv2.minMaxLoc(match)
        if quality > 0.8:
            result.append({'x': location[0], 'symbol': ntpath.basename(symbol).replace('.png', '')})
result = sorted(result, key=lambda k: k['x'])
return ''.join([x['symbol'] for x in result])
我有以下错误:


错误回溯(最近一次呼叫上次) 在里面 37 38对于图像中的img: --->39打印(“{}->{}.”格式(img,guess_captcha(img)))

在guess_验证码中(图像) 27 img_symbol=cv2.imread(符号) 28 --->29 match=cv2.matchTemplate(img_符号、图像、cv2.TM_cceff_规范) 30如果len(匹配): 31 u,质量,位置=cv2.minMaxLoc(匹配)


错误:OpenCV(4.1.2)…\modules\imgproc\src\templammatch.cpp:1104:错误:(-215:断言失败)(深度==CV|8U||深度==CV|32F)&&type==模板.type()&&&img.dims()OpenCV的错误消息可能有点神秘。以下是错误消息每个部分的含义:

  • depth==CV_8U
    :函数需要8位单通道图像(每像素一个uint8值,例如灰度,但不是每像素有3个值的RGB)
  • depth==CV_32F
    :函数需要32位单通道图像(每个像素一个浮点值)
  • type==\u temp.type()
    :两个输入图像必须具有相同的类型(CV\u 8U或CV\u 32F)

  • \u img.dims()OpenCV的错误消息可能有点神秘。以下是错误消息每个部分的含义:

    • depth==CV_8U
      :函数需要8位单通道图像(每像素一个uint8值,例如灰度,但不是每像素有3个值的RGB)
    • depth==CV_32F
      :函数需要32位单通道图像(每个像素一个浮点值)
    • type==\u temp.type()
      :两个输入图像必须具有相同的类型(CV\u 8U或CV\u 32F)
    • \u img.dims()