C# 比较两个低质量的图像

C# 比较两个低质量的图像,c#,image,opencv,compare,emgucv,C#,Image,Opencv,Compare,Emgucv,我正在研究一种算法来提取具有不同质量的两幅图像之间的差异。例如,你有一个由设计师创建的photoshop文件,然后用一些设备打印出来,你扫描了它并将其保存为bmp文件。 主要问题是我们如何比较这两幅图像? 不可能一个像素一个像素地进行比较,因为在扫描版本中,许多对象都发生了变化,例如线条变粗。 我的想法是找到两幅图像中的任何形状,然后根据位置和其他形状特征对它们进行比较,但主要问题是,在低质量图像中,比较变得太困难。因为在低质量图像中,我们有噪声,在消除噪声后,一些形状将丢失。例如,当我使用打开

我正在研究一种算法来提取具有不同质量的两幅图像之间的差异。例如,你有一个由设计师创建的photoshop文件,然后用一些设备打印出来,你扫描了它并将其保存为bmp文件。 主要问题是我们如何比较这两幅图像? 不可能一个像素一个像素地进行比较,因为在扫描版本中,许多对象都发生了变化,例如线条变粗。
我的想法是找到两幅图像中的任何形状,然后根据位置和其他形状特征对它们进行比较,但主要问题是,在低质量图像中,比较变得太困难。因为在低质量图像中,我们有噪声,在消除噪声后,一些形状将丢失。例如,当我使用打开和关闭或形态学过滤器时,我会丢失一些字符,例如“i Q O 0”或其他形状。您的意见是什么?

您有需要比较的图像1和图像2。在两幅图像中,通过hough变换找到角点,然后通过角点注册两幅图像。您可以使用。现在两幅图像大小相同。最后,您可以使用matchTemplate()查找两幅图像之间的差异。

关于@Mostafa Sataki的建议听起来不错。另一种方法是按照建议对齐图像,然后使用相似性度量,例如


另一种可能是尝试从两幅图像中提取图像,看看它们是否是相同的图像。

如果您正在使用此算法,您应该已经有了一些结果。告诉我们,你做了什么。当然我会上传结果。有关更多详细信息,请使用链接。非常感谢你让我来做,它似乎对我很有用。:)说谢谢的正确方式是投票表决。