问题标签 [matchtemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
788 浏览

python - OpenCv 找到相似的图像


我正在尝试使用 opencv 中的 match_template,
我尝试匹配这两个图像,
这是图像 > https://imgur.com/a/Heea7vm
我要搜索的星星 > https://imgur.com /a/9IxHNKI
结果超过 0.9 非常好,但是当图像更改为其他怪物时,例如:
https
://imgur.com/a/oqjoDOl ,结果仅为 0.5
,或者当相同的怪物具有更多星星时,例如:
https: //imgur.com/a/vTFPuBz
结果比其他 2 星怪物还要高

我想用星图搜索所有 2 星怪物,我在 2 天内尝试使用不同的匹配方法,但我无法真正实现这个图像搜索

有什么方法/建议可以帮助我实现这种图像搜索吗?
谢谢!!

0 投票
2 回答
1698 浏览

c# - OpenCV模板匹配结果为黑色

我得到以下代码来在源图像中查找模板:

源图像如下所示: 在此处输入图像描述

和相应的模板: 在此处输入图像描述

但是,我的结果全都涂黑了:

在此处输入图像描述

我验证了templatesourceMat 已正确加载到内存中。见pictureBox1.Image = source.Bitmap; ...

最后,我从文档中找不到任何信息,为什么我的resultMat( pictureBox1.Image = result.Bitmap;) 是黑色的。其他人也有/遇到过这个问题,可以给我一些参考链接或快速修复吗?

0 投票
1 回答
596 浏览

python - opencv matchtemplate源码中使用什么方法处理彩色图像?

opencv matchtemplate的文档

在彩色图像的情况下,分子中的模板总和和分母中的每个总和在所有通道上完成,并且每个通道使用单独的平均值。即该函数可以获取一个颜色模板和一个彩色图像。结果仍然是单通道图像,更易于分析。

我不明白这意味着什么。对于彩色模板和彩色图像,单通道图像(结果)是所有通道结果的平均值吗?

templmatch.cpp源代码:github

0 投票
1 回答
1063 浏览

opencv - 多尺度模板匹配,无需循环遍历每个尺寸

在不同尺寸的屏幕上将图像与模板匹配有哪些不同的方法?例如,如果我有一个 720p 屏幕的模板并尝试在 1080p 屏幕上使用它,我之前尝试过 Sift,但它永远找不到它,但误报太多了。并且更改模板的大小以匹配每个大小的屏幕对于我正在做的事情来说太重了。我需要每秒检查至少 10 次帧

0 投票
0 回答
116 浏览

android - 模板匹配在不同的图像中不起作用

我正在尝试比较不同的人脸照片以在 Android 中开发某种人脸识别。我正在使用 OpenCV3 和 match-Template ,问题是如果我在图像中剪切一张脸并使用相同的完整图像,我会得到一个匹配并且一切都可以,但是如果这张脸是同一个人的脸但不是来自同一个人图像我没有匹配,minVal 和 maxVal 都是 0。我使用的代码来自示例代码。例如,我已经看到很多问题和答案 OpenCV matchTemplate minVal maxVal 仅返回 0 和 1,但我没有看到针对我的情况的解决方案。非常感谢,如果您认为我需要将代码放在这里,我将编辑问题。

0 投票
1 回答
846 浏览

python - OpenCV imwrite() / imread() 函数是否以任何方式修改图像?

我有以下情况,我的内存图像和存储到磁盘然后读回的内容不相等,我想了解为什么以及如何“修复”差异。

如果有人想知道为什么我同时拥有(内存和本地磁盘),那是因为我使用存储的图像来微调我的图像匹配/识别,使用 OpenCV 的滑动窗口,而无需不断等待视频流来显示我的内容正在寻找。

BGR 帧来自ffmpegbgr24像素格式创建的视频流,然后按如下方式处理:

现在事情变得有趣了,它bgr_frame被发送到另一个函数,该函数切出感兴趣的区域,然后尝试将每个区域与lib_image图像库中的 a 进行匹配,就像这样

为悬停在区域周围res返回的值低于从磁盘读回相同图像的值,如下所示:bgr_frame.86.1

通过相同的函数推送image从磁盘读取以将区域与库进行匹配,从而产生.96范围内的匹配!

我错过了什么?OpenCV 文档没有提到对图像做任何事情,除了在我的情况下PNG以特定格式对图像进行0压缩,但显然内存中的内容和写入/读取到磁盘的内容有所不同。

0 投票
1 回答
2334 浏览

python - cv2.matchTemplate 给出错误:(-215:断言失败)

我得到这个错误:

0 投票
3 回答
1072 浏览

python - 计算图像出现在屏幕上的次数

此代码截取屏幕截图,然后通过将其与给定模板进行比较,在屏幕上查找给定对象,然后计算找到该对象的次数。这可以在下面的马里奥硬币图片中看到,其中程序将识别每个马里奥硬币,然后计算总共有多少。我的问题是我希望程序在运行时继续计数硬币,这样如果在屏幕上添加或减去硬币,程序就会更新计数。

例如:数 19 个硬币,数 19 个硬币,数 19 个硬币,(添加两个硬币),数 21 个硬币,数 21 个硬币等。

马里奥图片

0 投票
1 回答
2007 浏览

python - 使用带有彩色图像 OpenCV 的 matchTemplate

我正在尝试在桌面屏幕截图中检测某些彩色图像,其中我有形状相同但颜色不同的模板(这些模板在使用正常的 matchTemplate 方法时并没有区别,因为它是用灰度图像完成的)这是主要的代码检测:

如您所见,我尝试拆分 rgb 屏幕截图图像的通道,然后与同样拆分的模板图像进行比较。正如您在注释代码中看到的那样,我还尝试使用 HSV 通道执行此操作。然而这并没有奏效,尽管看到在单通道图像中存在颜色的视觉差异,但程序没有区分它们(我还尝试与模板和屏幕截图的每个单独通道进行比较)。

欢迎所有建议,甚至尝试使用其他任何方法来实现我的目标。先感谢您。

0 投票
1 回答
599 浏览

python - Python OpenCV matchTemplate with Masking - 在所有位置找到匹配项

问题: 我收到的结果matchTemplate表明我在每个位置都有匹配项,其值为1.0.

预期结果:我预计其中一个位置的results得分比其他位置高得多。

代码:

注释:

  • 调试输出显示img_graytemplatetemp_mask视觉效果
  • img_gray顶部只有template10 个额外像素行的白色填充
  • template并且temp_mask是相同的形状和类型
  • 保存的输出图像