Image processing 图像比较

Image processing 图像比较,image-processing,image-comparison,Image Processing,Image Comparison,在visual c中比较两个图像的有效方法是什么。。? 还必须以何种格式存储图像(bmp、gif、jpeg…)? 请提供一些建议你的问题在复杂性方面打开了一个漏洞 如果要比较两个图像以检查它们是否相同,则需要对文件执行md5(删除可能扭曲结果的元信息) 如果你想比较一下它们看起来是否一样,那就完全不同了。“外观相同”的含义非常松散(例如,它们是完全相同的图像,但以两种不同的文件格式存储)。为此,您需要高级算法,这将为您提供两个图像相同的概率。我不是该领域的专家,我会执行以下“我头脑中发明的”算法

在visual c中比较两个图像的有效方法是什么。。? 还必须以何种格式存储图像(bmp、gif、jpeg…)?
请提供一些建议

你的问题在复杂性方面打开了一个漏洞

如果要比较两个图像以检查它们是否相同,则需要对文件执行md5(删除可能扭曲结果的元信息)

如果你想比较一下它们看起来是否一样,那就完全不同了。“外观相同”的含义非常松散(例如,它们是完全相同的图像,但以两种不同的文件格式存储)。为此,您需要高级算法,这将为您提供两个图像相同的概率。我不是该领域的专家,我会执行以下“我头脑中发明的”算法:

  • 从图像中获取任意一组像素点
  • 对于每个像素,从颜色相近的周围像素中“生长”出一个多边形(根据HSV颜色空间)
  • 对另一个图像执行相同的操作
  • 对于一幅图像中的每个多边形,检查与另一幅图像中所有其他多边形的几何相似性,并选择最大值。将该值除以多边形的面积(以进行规格化)
  • 用获得的最高值创建一个向量
  • 该向量的范数越高,两幅图像相同的可能性就越大

该算法对颜色漂移和图像旋转不敏感。也可以缩放(根据区域进行规格化)。但我重申:不是专家,可能有更好的,而且它会让小猫哭。

你的问题在复杂性方面打开了一个虫子罐

如果要比较两个图像以检查它们是否相同,则需要对文件执行md5(删除可能扭曲结果的元信息)

如果你想比较一下它们看起来是否一样,那就完全不同了。“外观相同”的含义非常松散(例如,它们是完全相同的图像,但以两种不同的文件格式存储)。为此,您需要高级算法,这将为您提供两个图像相同的概率。我不是该领域的专家,我会执行以下“我头脑中发明的”算法:

  • 从图像中获取任意一组像素点
  • 对于每个像素,从颜色相近的周围像素中“生长”出一个多边形(根据HSV颜色空间)
  • 对另一个图像执行相同的操作
  • 对于一幅图像中的每个多边形,检查与另一幅图像中所有其他多边形的几何相似性,并选择最大值。将该值除以多边形的面积(以进行规格化)
  • 用获得的最高值创建一个向量
  • 该向量的范数越高,两幅图像相同的可能性就越大

该算法对颜色漂移和图像旋转不敏感。也可以缩放(根据区域进行规格化)。但我重申:不是专家,可能有更好的方法,而且可能会让小猫哭。

如果你试图比较的图像具有你试图区分的独特特征,那么这是一个很好的方法。你需要什么格式的文件这一问题实际上无关紧要;您需要将其作为数字数组加载到程序中并进行分析。

如果您试图比较的图像具有您试图区分的独特特征,那么这是一个很好的方法。你需要什么格式的文件这一问题实际上无关紧要;您需要将其作为一个数字数组加载到程序中并进行分析。

如果您想确定两个图像在感知上是否相同,我认为最好的方法是使用图像哈希算法。您将计算两个图像的散列,并且您将能够使用散列来获得它们匹配程度的置信度评级


我在这方面取得了一些成功,但我不知道使用Visual C有多容易。搜索“几何哈希”或“图像哈希”可能会有所帮助。

如果您想确定两个图像在感知上是否相同,我相信最好的方法是使用图像哈希算法。您将计算两个图像的散列,并且您将能够使用散列来获得它们匹配程度的置信度评级


我已经取得了一些成功的一个方面是,尽管我不知道使用Visual C有多容易。搜索“几何哈希”或“图像哈希”可能会有所帮助。

测试严格标识很简单:只需将源图像A中的每个像素与图像B中相应的像素值进行比较。如果所有像素都相同,图像是相同的

但我想我不想要这种严格的身份。即使对图像B应用了某些转换,您也可能希望图像“相同”。这些转换的示例可能是:

  • 全局更改图像亮度(针对每个像素)
  • 局部更改图像亮度(针对特定区域中的每个像素)
  • 局部或全局改变图像饱和度
  • 伽马校正
  • 对图像应用某种过滤器(例如模糊、锐化)
  • 更改图像的大小
  • 轮换
e、 g.打印图像并再次扫描可能包括上述所有内容


简而言之,您必须确定要将哪些变换视为“相同”,然后找到对这些变换不变的图像度量。(或者,您可以尝试还原翻译,但如果转换从图像中删除信息,例如模糊或剪裁图像,则无法还原翻译)

测试严格标识很简单:只需比较