cv2.error:OpenCV(4.0.0)C:\ blah \ blah \ templmatch.cpp:589:错误:(-215:断言失败)

时间:2019-03-08 14:26:22

标签: python image-recognition

我以imagesearch脚本为例编写了一个脚本,该脚本运行良好,除了一个错误外,其他所有错误。

File "C:/Users/me/Desktop/python/animalID/test.py", line 55, in imagesearcharea
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED) 
cv2.error: OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\imgproc\src\templmatch.cpp:589: error: (-215:Assertion failed) corrsize.height <= img.rows + templ.rows - 1 && corrsize.width <= img.cols + templ.cols - 1 in function 'cv::crossCorr'

这是它正在运行的代码的一部分,我会解释它的作用

首先,向脚本显示50张动物图片,这些图片来自0-199个池或200-399个池。它会识别出它们是什么图像,并将文件名存储到数组中。然后会不时在屏幕上显示“动物”一词,当它出现时,会截取屏幕截图,然后脚本会将屏幕截图与数组列表中的所有动物图片进行比较。

如果数组中的列表的范围是0-199,则运行良好,但是如果列表中的列表是200-399,则每次都会崩溃。

def animalscanner():

    global namenumber
    global im
    global animaltype
    global currentnumber
    global threshold

    pos = imagesearch_loop("animal.png", 1)
    global im
    im = region_grabber((383, 625, 1078, 698)) 
    im.save('zzzzzztestarea.png')
    currentnumber = 0 #testing
    animaltypechecker()

def animaltypechecker():

    global namenumber
    global im
    global animaltype
    global currentnumber
    global threshold

    pos = imagesearcharea("w" + str(animaltype[currentnumber]) + ".png", 0, 0, 602, 38, threshold, im)
    while (pos[0] == -1):
        if currentnumber == 50: 
            currentnumber = -1
            threshold -= .01
        currentnumber +=1
        pos = imagesearcharea("w" + str(animaltype[currentnumber]) + ".png", 0, 0, 602, 38, threshold, im)

我认为这可能是一个损坏的图像文件,所以我重新抓取了200-399张图像(通过使用与制作前400张图像时相同的脚本的屏幕截图),但是仍然无法正常工作。

我不知道我在做什么错,我希望这是足够的信息,如果不让我知道还能提供什么。

0 个答案:

没有答案