【问题标题】:Assertion failed in imread() functionimread() 函数中的断言失败
【发布时间】: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 的位置。您应该尝试将绝对路径传递给图像(而不是相对路径)。
  • 你的模板比图片大

标签: python c++ opencv


【解决方案1】:

问题是,我的源路径包含非 ASCII 字符,例如 á 和 é...创建了一个没有任何非 ASCII 字符和空格的新位置,现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多