相关疑难解决方法(0)

简单快速的方法来比较图像的相似性

我需要一种简单快速的方法来比较两个图像的相似性.即如果它们包含完全相同的东西但是可能有一些稍微不同的背景并且可能被移动/调整大小几个像素,我想获得高值.

(更具体的是,如果重要的话:一张图片是一个图标,另一张图片是截图的子区域,我想知道该子区域是否恰好是图标.)

我手边有OpenCV,但我仍然不习惯它.

到目前为止我想到的一种可能性:将两张图片分成10x10个单元格,对于这100个单元格中的每一个,比较颜色直方图.然后我可以设置一些补偿阈值,如果我得到的值高于该阈值,我认为它们是相似的.

我还没有尝试过它的效果如何,但我想它会足够好.图像已经非常相似(在我的用例中),所以我可以使用相当高的阈值.

我想有很多其他可能的解决方案可以或多或少地工作(因为任务本身非常简单,因为我只想检测相似性,如果它们非常相似).你会建议什么?


关于从图像中获取签名/指纹/哈希,有一些非常相关/类似的问题:

另外,我偶然发现了这些具有获取指纹功能的实现:

关于感知图像哈希的一些讨论:这里


有点offtopic:有很多方法来创建音频指纹.MusicBrainz是一种为歌曲提供基于指纹的查找的网络服务,在他们的维基中很好的概述.他们现在正在使用AcoustID.这是为了找到精确(或大部分精确)的匹配.要查找类似的匹配(或者如果您只有一些片段或高噪音),请查看Echoprint.一个相关的SO问题在这里.所以这似乎解决了音频问题.所有这些解决方案都非常有效.

对一般的模糊搜索一个稍微更通用的问题是在这里.例如,存在局部敏感的散列最近邻搜索.

opencv image-processing computer-vision

186
推荐指数
5
解决办法
12万
查看次数

图像指纹比较许多图像的相似性

我需要创建许多图像(大约100.000现有,每天1000新,RGB,JPEG,最大尺寸800x800)的指纹,以便非常快速地将每个图像与每个其他图像进行比较.我不能使用二进制比较方法,因为也应该识别几乎相似的图像.

最好的是现有的库,但对现有算法的一些提示对我有很大的帮助.

image image-processing fingerprint

92
推荐指数
6
解决办法
6万
查看次数

近似重复图像检测

通过它们彼此的相似性来对一组给定图像进行排序的快速方法是什么.

目前我有一个系统在两个图像之间进行直方图分析,但这是一个非常昂贵的操作,似乎太过分了.

最理想的是,我正在寻找一种能够为每个图像提供分数的算法(例如整数分数,例如RGB平均值),我可以按该分数进行排序.相同的分数或分数彼此相邻可能是重复的.

0299393
0599483
0499994 <- possible dupe
0499999 <- possible dupe
1002039
4995994
6004994 
Run Code Online (Sandbox Code Playgroud)

每张图像的RGB平均值很糟糕,有类似的东西吗?

sorting image image-processing cbir

92
推荐指数
7
解决办法
5万
查看次数

需要一个好的算法来分类8GB的图片

我有大约150,000张照片,其中一些是重复的.我认为SSIM算法是比较两张图片并查看它们是否重复的不错选择.但是,如果我想以这种方式找到重复,我将不得不比较150.000*149.999图片,这将永远.

所以我现在正在寻找的是一种快速有效的算法,可以为每张图片创建平均值,然后只比较接近其平均值的图像.

简而言之:我正在寻找一种有效的图片分类方法!

我打算使用C++ CImg库来完成这项任务,因为它很快.

谢谢!

c++ jpeg image cimg

8
推荐指数
1
解决办法
520
查看次数