weixin_52755345 2024-07-22 23:06 采纳率: 100%
浏览 4
已结题

opencv模板匹配一直报错


import cv2
import matplotlib.pyplot as plt
import numpy as np
def cv_show(name,img):#定义图片展示函数
    cv2.imshow(name,img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

img = cv2.imread('peerlady.jpg',0)
template = cv2.imread('peerladyface.jpg', 0)
h,w = template.shape[:2]
print(img.shape)
print(template.shape)
res = cv2.matchTemplate(img, template, cv2.TM_SQDIFF)
print(res.shape)

您好!我在学习opencv模板匹配的时候用cv2.matchTemplate的时候一直报错但是我去其他地方搜也没有搜到解决方案
可以麻烦您帮我看一下吗谢谢了

img

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-07-22 23:06
    关注

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    根据您提供的错误截图和代码,错误信息 cv2.error: Opencv(4.10.0) ... error: (-215:Assertion failed) _img.size(...) 指出在使用 cv2.matchTemplate 函数时,传入的图像尺寸不符合函数的要求。这通常意味着您尝试匹配的模板图像和目标图像的尺寸不匹配,或者其中一个图像的尺寸是无效的。

    下面是一些解决这个问题的步骤:

    1. 检查图像尺寸:确保 imgtemplate 的尺寸都是有效的。从您的代码中可以看到,您已经打印了 imgtemplate 的尺寸,这是一个很好的步骤。确保它们都是非零的正整数。

    2. 确保图像加载正确:检查 'peerlady.jpg''peerladyface.jpg' 是否存在于您的工作目录中,并且没有损坏。使用 cv2.imread 加载图像时,如果图像路径不正确或文件损坏,将返回 None。您可以添加一个检查来确保图像被正确加载:

      if img is None or template is None:
          print("Check if the images are loaded correctly.")
          exit()
      
    3. 检查图像通道数cv2.matchTemplate 要求两个图像的通道数相同。由于您使用了 0 作为 cv2.imread 的参数来加载灰度图像,这应该是正确的。但是,如果图像不是灰度的,您需要确保它们都是灰度或都是彩色的。

    4. 调整图像尺寸:如果模板图像和目标图像的尺寸相差很大,您可能需要调整它们以匹配。例如,您可以使用 cv2.resize 来调整模板图像的尺寸。

    5. 检查代码逻辑:您的代码逻辑看起来是正确的,但是确保在调用 cv2.matchTemplate 之前,图像已经被正确加载并且尺寸是有效的。

    6. 查看OpenCV文档:查看 cv2.matchTemplate 函数的文档,确保您理解了它的参数和返回值。

    7. 测试代码:在解决了上述问题之后,重新运行代码,确保模板匹配功能可以正常工作。

    8. 优化代码:如果代码能够正常工作,进一步优化代码,提高其效率和可读性。

    如果您已经尝试了上述步骤,但问题仍然存在,您可能需要在OpenCV社区或Stack Overflow等平台上寻求帮助,并提供详细的错误信息和代码片段。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月31日
  • 已采纳回答 7月23日
  • 创建了问题 7月22日

悬赏问题

  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境