当前位置: 首页 > 知识库问答 >
问题:

OpenCV模板匹配算法的改进

金高飞
2023-03-14

我正在进行一个小型的个人项目,我必须知道所显示的图像是否是一辆汽车。我使用的是基本的基于OpenCV python的模板匹配。

汽车俯视图:-https://i.stack.imgur.com/zXr1U.jpg

简单的模板匹配是使用一个正图像对另一个正图像进行匹配,从而得到所需的结果。

但是当我们使用像https://i.stack.imgur.com/YLVwc.jpg这样的负面图像时,模板查找器会发现这是一个正匹配。

>

OpenCV中存在的不同类型的模板匹配技术:-没有提供更好的结果

使用多个模板来加强正面和负面匹配:-并不适用于所有情况

是否有更好的方法来删除我们得到的模板匹配误报。是否有任何基于特征匹配或边缘检测的技术可以用来代替模板匹配来改进我的算法。

共有1个答案

江佐
2023-03-14

简单的方法,但可能值得尝试在您的情况下是将您的模板分为(4)部分-角,然后应用模板匹配的每个部分,只有当4个部分被发现时才接受

也:

>

  • 在增加阈值的同时添加不同的模板

    如果尚未应用,请应用一些规范化

  •  类似资料:
    • 问题内容: 我正在尝试基本上在Java上进行模板匹配。我使用简单的算法来找到匹配项。这是代码: 但这是非常缓慢的方法。我测试了2张图像(768×1280)和子图像(384 x 640)。这持续了很长时间。openCV是否可以使用现成的函数cvMatchTemplate()快速执行模板匹配? 问题答案: 您会发现openCV cvMatchTemplate()比您已实现的方法快得多。您创建的是一种统

    • 请尝试在java中创建一个新的应用程序来匹配图片和视频,图片中模板的匹配工作正常,但当我尝试为视频执行此操作时,总是会出现以下错误消息: OpenCV错误:断言失败((深度==CV_8U||深度==CV_32F) 这是我的视频图片匹配功能,有人可以帮忙。

    • Im使用java中的OpenCV,使用eclipse开发,图像以这种方式读取以进行模板匹配。 这很好,但我的图像不在本地计算机中。我应该比较mysql数据库中服务器上的2000个图像。把2000张图片保存到我的电脑上,然后读取它们是没有意义的。 所以我需要的是那个高鬼。imread(infle)读取图像:Highgui。imread(图像中的图像)或Highgui。imread(文件填充),我找不

    • 目标 在这一章中,你将学习 使用模板匹配查找图像中的对象 你会学会这些函数:cv2.matchTemplate(),cv2.minMaxLoc() 理论基础 模板匹配是一种在较大图像中搜索和查找模板图像位置的方法。 OpenCV为此提供了一个函数cv2.matchTemplate()。它只是将模板图像滑过输入图像(就像2D卷积那样),并将模板图像和输入图像的一小块进行比较。在OpenCV中实现了几

    • 目标 在本章中,您将学习 使用模板匹配在图像中查找对象 你将看到以下功能:cv.matchTemplate(),cv.minMaxLoc() 理论 模板匹配是一种用于在较大图像中搜索和查找模板图像位置的方法。为此,OpenCV带有一个函数cv.matchTemplate()。 它只是将模板图​​像滑动到输入图像上(就像在2D卷积中一样),然后在模板图像下比较模板和输入图像的拼图。 OpenCV中实

    • 主要内容:BF算法原理,BF算法实现,BF算法时间复杂度,总结串的模式匹配算法,通俗地理解,是一种用来判断两个串之间是否具有"主串与子串"关系的算法。 主串与子串:如果串 A(如 "shujujiegou")中包含有串 B(如 "ju"),则称串 A 为主串,串 B 为子串。主串与子串之间的关系可简单理解为一个串 "包含" 另一个串的关系。 实现串的模式匹配的算法主要有以下两种: 普通的模式匹配算法; 快速模式匹配算法; 本节,先来学习 普通模式匹配(BF)