gpt4 book ai didi

image - 使用 OpenCV 检查图像的相似性

转载 作者:太空宇宙 更新时间:2023-11-03 20:36:14 25 4
gpt4 key购买 nike

OpenCV 是否支持比较两幅图像,返回一些值(可能是百分比)来指示这些图像的相似程度?例如。如果相同的图像传递两次,则返回 100%,如果图像完全不同,则返回 0%。

我已经在 StackOverflow 上阅读了很多类似的主题。我也做了很多谷歌搜索。遗憾的是,我无法得出令人满意的答案。

最佳答案

这是一个巨大的话题,从 3 行代码到整本研究杂志都有答案。

我将概述最常见的此类技术及其结果。

比较直方图

最简单和最快的方法之一。几十年前提出作为寻找图片相似性的手段。这个想法是森林会有很多绿色,人脸会有很多粉红色,或者其他什么。因此,如果您将两张图片与森林进行比较,您会发现直方图之间有一些相似之处,因为两张图片中都有很多绿色。

Downside: it is too simplistic. A banana and a beach will look the same, as both are yellow.

OpenCV method: compareHist()

模板匹配

这里有一个很好的例子 matchTemplate finding good match .它将搜索图像与正在搜索的图像进行卷积。它通常用于在较大的图像中查找较小的图像部分。

Downsides: It only returns good results with identical images, same size & orientation.

OpenCV method: matchTemplate()

特征匹配

被认为是进行图片搜索的最有效方法之一。从图像中提取了许多特征,以确保即使在旋转、缩放或倾斜时也能再次识别相同特征的方式。以这种方式提取的特征可以与其他图像特征集进行匹配。与第一个图像具有高比例特征的另一幅图像被认为描绘了同一场景。

找到两组点之间的单应性将使您还可以找到原始图片之间拍摄角度或重叠量的相对差异。

There are a number of OpenCV tutorials/samples on this, and a nice video here. A whole OpenCV module (features2d) is dedicated to it.

Downsides: It may be slow. It is not perfect.


OpenCV Q&A 上网站 我在谈论特征描述符之间的区别,这在比较整个图像和纹理描述符时非常有用,纹理描述符用于识别图像中的人脸或汽车等物体。

关于image - 使用 OpenCV 检查图像的相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11541154/

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