我需要一种简单快速的方法来比较两个图像的相似性.即如果它们包含完全相同的东西但是可能有一些稍微不同的背景并且可能被移动/调整大小几个像素,我想获得高值.
(更具体的是,如果重要的话:一张图片是一个图标,另一张图片是截图的子区域,我想知道该子区域是否恰好是图标.)
我手边有OpenCV,但我仍然不习惯它.
到目前为止我想到的一种可能性:将两张图片分成10x10个单元格,对于这100个单元格中的每一个,比较颜色直方图.然后我可以设置一些补偿阈值,如果我得到的值高于该阈值,我认为它们是相似的.
我还没有尝试过它的效果如何,但我想它会足够好.图像已经非常相似(在我的用例中),所以我可以使用相当高的阈值.
我想有很多其他可能的解决方案可以或多或少地工作(因为任务本身非常简单,因为我只想检测相似性,如果它们非常相似).你会建议什么?
关于从图像中获取签名/指纹/哈希,有一些非常相关/类似的问题:
另外,我偶然发现了这些具有获取指纹功能的实现:
关于感知图像哈希的一些讨论:这里
有点offtopic:有很多方法来创建音频指纹.MusicBrainz是一种为歌曲提供基于指纹的查找的网络服务,在他们的维基中有很好的概述.他们现在正在使用AcoustID.这是为了找到精确(或大部分精确)的匹配.要查找类似的匹配(或者如果您只有一些片段或高噪音),请查看Echoprint.一个相关的SO问题在这里.所以这似乎解决了音频问题.所有这些解决方案都非常有效.
我想比较一个应用程序(可能是一个网页)的屏幕截图与之前拍摄的屏幕截图,以确定应用程序是否正确显示自己.我不想进行完全匹配比较,因为方面可能略有不同(在Web应用程序的情况下,取决于浏览器,某些元素可能位于稍微不同的位置).它应该衡量屏幕截图的相似程度.
是否有图书馆/工具已经做到了?你会如何实现它?
我需要一种算法,可以确定两个图像是否"相似"并识别相似的颜色,亮度,形状等模式.我可能需要一些关于人类大脑用来"分类"图像的参数的指针...
我已经看过基于hausdorff的匹配,但这似乎主要是为了匹配变换对象和形状模式.
我试图将图像相互比较,以确定它们是否不同.首先,我尝试对RGB值进行Pearson相关,除非图像是轻微的位移,否则它的效果也相当不错.因此,如果一个100%相同的图像,但一个有点移动,我得到一个不好的相关值.
有关更好算法的任何建议吗?
顺便说一下,我正在谈论比较数千个图片......
编辑:以下是我的照片示例(微观):
IM1:

IM2:

IM3:

im1和im2是相同但有点移位/切割,im3应该被认为是完全不同的...
编辑: 问题是通过Peter Hansen的建议解决的!效果很好!感谢所有答案!一些结果可以在这里找到 http://labtools.ipk-gatersleben.de/image%20comparison/image%20comparision.pdf
有没有人知道在更大的图像中定位已知图像的算法(或搜索术语/描述)?
例如
我有一个包含各种按钮和区域(目标)的单个桌面窗口的图像.我还有代码捕获当前桌面的屏幕截图.我想要一个算法,它可以帮助我在更大的桌面图像中找到目标图像(窗口所在的x和y坐标是什么).目标图像可能位于较大图像中的任何位置,并且可能不是100%完全相同(非常相似但不完全可能是OS显示差异的b/c)
有谁知道这样的算法或算法类?
我发现了各种图像分割和计算机视觉算法,但它们似乎适用于区域的"模糊"分类,而不是将特定图像定位在另一个区域内.
**我的目标是创建一个框架,给定一些种子目标图像,可以在桌面上找到"外观",找到目标区域并"观察"它的变化.**
我在图像数据集上实现了几种聚类算法.我有兴趣获得聚类的成功率.我必须检测肿瘤区域,在我知道肿瘤所在位置的原始图像中,我想比较两个图像并获得成功的百分比.以下图片:
原图:我知道癌症的位置
聚类算法后的图像
我正在使用python 2.7.
有没有人对如何在python中进行图像比较以检测图像中的变化有任何建议?我正在开发一个应用程序,用我的网络摄像头监视我的区域,我想弄清楚如何比较每帧拍摄的图像,看看是否有任何动作被检测到.从长远来看,我想设置一个灵敏度滑块,所以如果你能够指导我的方向,我相信我可以找到其余的.
我在这里看到一些关于将网络摄像头与wxPython集成的帖子,这是一个小型演示.请注意,我刚刚在昨晚开始使用,所以如果您正在寻找笔尖代码,您可能需要自己修改它(现在;):
要求:PIL和VideoCapture
#videocapturepanel.py
#Todo:
# - Fix background colour after video is stopped
# - Create image comparison method
# - Add capture function
# - Save stream to video file?
import threading, wx
from PIL import Image
from VideoCapture import Device
cam = Device(0)
buffer, width, height = cam.getBuffer()
cam.setResolution(width, height)
DEFAULT_DEVICE_INDEX = 0
DEFAULT_DEVICE_WIDTH = width
DEFAULT_DEVICE_HEIGHT = height
DEFAULT_BACKGROUND_COLOUR = wx.Colour(0, 0, 0)
class VideoCaptureThread(threading.Thread):
def __init__(self, control, width=DEFAULT_DEVICE_WIDTH, height=DEFAULT_DEVICE_HEIGHT, backColour=DEFAULT_BACKGROUND_COLOUR):
self.backColour = …Run Code Online (Sandbox Code Playgroud) 假设图库中有10,000个JPEG,PNG图像,如何找到具有相似调色板的所有图像到选定图像,并按降序相似度排序?
我正在寻找一种使用python分析图像相似性的好方法.我不是在寻找一种方法来确定两个图像是否相同.我只是想找到一种方法来确定两个图像之间的相似性(例如,如果两个图像非常相似,它们可以被赋予9/10的"等级";如果它们完全不相同,它们将被给予一个非常相似的低指数,如2/10).从我已经完成的一些阅读中,已经建议使用模块ImageChops - 但是,我还没有找到下载它的方法.如果有人知道如何下载它,或者有其他有效解决方案的建议,我将非常感谢他们的建议!
提前致谢!
python import artificial-intelligence image-processing python-2.7