【发布时间】:2022-01-20 14:03:16
【问题描述】:
我正在尝试使用 openCV-python 进行简单的模板匹配,但一开始就出现错误。 我已经运行了以下代码:
import cv2 as cv
import numpy as np
haystackImg = cv.imread('fullImage.png', cv.IMREAD_UNCHANGED)
needleImg = cv.imread('diamond.png', cv.IMREAD_UNCHANGED)
result = cv.matchTemplate(haystackImg,needleImg, cv.TM_CCOEFF_NORMED)
cv.imshow('result', result)
cv.waitKey() ```
...我收到了这个错误:
[ WARN:0@0.186] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('fullImage.png'): can't open/read file: check file path/integrity
[ WARN:0@0.195] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('diamond.png'): can't open/read
file: check file path/integrity ython39/python.exe "c:/U
Traceback (most recent call last):
File "[myFilePath]\starting.py", line 8, in <modd file: check file path/ule>
result = cv.matchTemplate(haystackImg,needleImg, cv.TM_CCOEFF_NORMED)
cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\templmatch.cpp:588: error: (-215:Assertion failed) corr.rows <= img.rows +
templ.rows - 1 && corr.cols <= img.cols + templ.cols - 1 in function 'cv::crossCorr'
其中令人困惑的部分是,我什至没有 D: 驱动器,并且该模块正在其上搜索某些东西。我重新安装了它,但它没有帮助。
【问题讨论】:
-
D 驱动器/路径与您的机器无关,它是编译 opencv C++ 代码的驱动器。从您报告的错误看来,您的图像文件已损坏或未保存在您提供给 OpenCv 的位置。您应该尝试将绝对路径传递给图像(而不是相对路径)。
-
你的模板比图片大