gpt4 book ai didi

ios - 使用 OpenCV matchTemplate 提高图像匹配精度

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:03:57 29 4
gpt4 key购买 nike

我正在制作一个 iOS 应用程序,它将在较大图像中找到较小(相似)图像的实例。例如,像这样的东西:

The image we are searching inside我们在里面搜索的图片

enter image description here

我们正在搜索的图片

enter image description here

匹配的图片

主要要考虑的是,smallImage 大小将与 bigImage 中的目标大小匹配,但对象在 bigImage 中可能会稍微模糊(如因为它们并不总是相同的)。此外,我正在处理的图像比我这里的示例小很多,我要匹配的图像(smallImage)介于 32 x 32 像素和 80 x 80 像素之间,大图像大约为 1000 x 600像素。除了可能被稍微遮挡之外,smallImage 将以各种方式(大小、颜色、旋转等)与大图像中的对象匹配。

我尝试了一些使用 OpenCV 的方法。特征匹配似乎不够准确,给了我数百个无意义的结果,所以我正在尝试模板匹配。我的代码看起来像:

cv::Mat ref = [bigImage CVMat];
cv::Mat tpl = [smallImage CVMat];
cv::Mat gref, gtpl;
cv::cvtColor(ref, gref, CV_LOAD_IMAGE_COLOR);
cv::cvtColor(tpl, gtpl, CV_LOAD_IMAGE_COLOR);
cv::Mat res(ref.rows-tpl.rows+1, ref.cols-tpl.cols+1, CV_32FC1);
cv::matchTemplate(gref, gtpl, res, CV_TM_CCOEFF_NORMED);
cv::threshold(res, res, [tolerance doubleValue], 1., CV_THRESH_TOZERO);


double minval, maxval, threshold = [tolerance doubleValue];
cv::Point minloc, maxloc;
cv::minMaxLoc(res, &minval, &maxval, &minloc, &maxloc);

if (maxval >= threshold) {
// match
  • bigImage 是我们试图在其中找到目标的大图像

  • smallImage 是我们在 bigImage 中寻找的图像

  • tolerance 是匹配的容差(介于 0 和 1 之间)

这确实有效,但存在一些问题。

我最初尝试使用我要匹配的图像对象的完整图像(即整个冰箱的图像),但我发现它非常不准确,当容差很高时它什么也找不到,并且当它很低时,它发现了许多不正确的匹配项。

接下来我使用图像的较小部分进行了测试,例如:

enter image description here

这提高了在大图像中找到目标的准确性,但也导致了很多不正确的匹配。

我已经尝试了来自 herematchTemplate 的所有可用方法, 它们都返回大量错误匹配,除了 CV_TM_CCOEFF_NORMED 返回较少的匹配(但也主要是错误匹配)

如何在 iOS 中使用 OpenCV 提高图像匹配的准确性?

编辑:我用谷歌搜索了很多东西,最有用的帖子是:

我找不到任何关于如何提高准确性的建议

最佳答案

如果模板图像在您正在搜索的图像中没有旋转(或在某些投影失真下)——因为所有几何和纹理属性都被保留(假设遮挡不是很大),剩下的唯一变量是规模。因此,在原始模板的多个尺度上运行模板匹配算法,然后在所有尺度上取最大归一化响应应该会给出完美匹配。一个问题可能是,对于完美匹配,猜测(优化)确切的比例在计算上会很昂贵或涉及一些试探法。一种启发式方法可以是,在 3 个不同的尺度(1、2、4)下运行模板匹配,假设您在特定尺度(比如 2)下获得最佳响应,在(1.5、2.25、3)之间尝试并继续改进。当然,这是一种启发式方法,在实践中可能效果很好,但在理论上并不是找到正确尺度的正确方法,并且可能会陷入局部最小值。

基于特征的方法不适用于此类图像的原因是它们依赖于纹理/锐度渐变,这在您显示的同质模板图像中不是很明显。

关于ios - 使用 OpenCV matchTemplate 提高图像匹配精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25709365/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com