我想找到两幅不同图像之间的相似性

我想找到两幅不同图像之间的相似性

我有两张照片,其中一张是相机拍摄的,分辨率很高,另一张是有噪点的,是从视频中捕获的。

我该如何比较它们?有没有什么软件可以比较它们?

答案1

你可以尝试Imagemagick,它有一个 Windows 版本,我见过它用于图像比较。有一些很好的例子这里

答案2

好吧,我不能告诉你软件,但我肯定可以为你提供有关整个问题的一些技术知识,以便你可以快速搜索并获得相关工具......

--- 作为预处理步骤,将两幅图像转换为原始 RGB 格式。bmp 应该可以满足您的要求,并将两幅图像转换为相同的分辨率。我还假设resolution difference您在问题中指的是质量差异,即一幅图像具有鲜艳而清晰的色彩,而另一幅图像则略显苍白和模糊(从视频中拍摄的那幅)---

1) 首先,如果您想比较内容,请确保两张图片的内容相同,唯一的区别是分辨率(您已在预处理步骤中消除了分辨率)、颜色深度和噪声。如果两张图片的内容不同,或者一张图是另一张图的裁剪版本,则您无法将两张图片作为一个整体进行比较,而是必须仔细分割图片(以任意形状裁剪),以便找到两张图片的正确区域进行比较。

2) 现在,假设第一步一切都很顺利,现在,尝试一些具有图像处理功能的图像查看器(如 Irfanview、ACDSEE 等),并尝试向第二幅图像添加噪声。噪声有多种类型,因此请尝试工具中提供的一些噪声模型。为了清晰起见,请在应用这些模型时观察图像之间视觉相似性(不相似性)的变化。您还可以尝试其他转换,如模糊、锐化等。

3) 如果这不起作用,请尝试此方法。尝试将两个图像都转换为灰度,并继续将位深度降低为双色调图像(即黑白)。我不知道该工具是否允许您执行此操作,但请搜索带有关键字“将图像转换为灰度 + 降低颜色深度”的工具。不用说,对于任何转换,您都必须继续观察/跟踪(无论是视觉上还是程序上)相似性(或不相似性)。

  • 现在,让我们看看为什么最后一种技术很有可能奏效。我不知道您是否能理解这一点,但这是一个简单的想法,所以请尝试并遵循。

-原始图像只不过是一个 24 位值的矩阵(位数实际上可能有所不同,但概念是相同的),其中 8 位代表红色,8 位代表蓝色,8 位代表绿色。每个像素都有一个这样的 24 位值,因此,当您必须找出两幅图像之间的相似性时,您会逐个像素地比较两幅图像,以查看它们在这些 24 位值中的相似性。现在,由于您说两幅图像具有相同的内容,但其中一幅图像有轻微的噪点和低分辨率(这意味着它模糊且泛白),这基本上意味着该图像中的细节级别与其他图像相比较低。这进一步意味着对于每个像素,位值的缩放比例不会像 RGB 光谱中的高质量图像那样相差很大,因此,每个组件仅取有限的值。换句话说,高质量图像中的细节归因于红色、绿色和蓝色的 255 种可能级别,这可以通过对它们分别使用 8 位来实现。然而,在其他图像(模糊和刷新)中,这个细节没有被捕捉到,主要是因为每个 RGB 的许多低阶位要么是零,要么不存在(可能是因为图像最初只用 4 个颜色位捕捉,然后缩放到 8 位)。因此,如果我有条不紊地开始删除低阶位(删除的意思是将它们设置为零),我的高质量图像将倾向于采用与其他模糊图像相同的级别或颜色。从技术角度来说,我将删除一些视觉平面,以减少图像中的细节,这正是您想要的。最后,由于您已确保图像的内容相同,如果您现在比较它们,它们将很有可能匹配。

问候
Vaid、Abhishek
AViD

相关内容