【问题标题】:Prove that two grayscale images are same or not证明两个灰度图像相同与否
【发布时间】:2020-07-10 10:06:15
【问题描述】:

给定两个由两个矩阵表示的灰度图像,其中每个单元格表示像素值(如图所示)。如何判断两张图片是否相同?在查看灰度值时,很明显第二张图像是第一张图像的旋转版本。但是有数学证明或方法来证明吗?

我的方法:我们可以为这两个图像创建直方图并匹配它们。如果它们不匹配,则图像不一样。但问题是直方图没有显示图像的空间特征。可能有两张直方图相同但实际上完全不同的图像。

【问题讨论】:

  • 这两个图像既不旋转也不镜像。它们不是“相同的”。
  • 你能上传文本形式的图像值吗?对于试图回答您手动重新输入所有值的人来说,这是一种痛苦。
  • 使用np.array_equal(imA,imB) 测试所有元素是否相等。按照 Rahul 的回答翻转。

标签: image-processing computer-vision histogram


【解决方案1】:

比较两个相同方向的图像,使用这个:

diff = np.subtract(img1, img2)
if np.sum(diff != 0) > 0:
    print("Images are not same")
else:
    print("Images are same")

现在在水平轴上翻转其中一张图像,然后在垂直轴上翻转一次(并且还转置一次图像(如果是这种情况))并将这些图像与第二张图像一一比较。如果这些图像中的任何一个相同,则 2 个图像相同,否则它们不同。

您可以使用旋转而不是翻转(请记住,您旋转了 180 度)。 See this to know how to flip and rotate

【讨论】:

  • 他们有问题。
  • 抱歉,误会大了。当然,逐像素比较是有效的。
  • 这本身就是图像还是图像里面的矩阵是灰度图像?我觉得第二个是对的?
  • 对不起,这里的混乱,问题已被编辑。
  • @MarkSetchell,我实际上并没有总结差异图像的值。通过np.sum(diff != 0),我正在计算差异图像中不是0 的值的数量。因此,在您的情况下,如果条件将变为真,并且代码会说图像不一样。在你的情况下,np.sum(diff != 0) = 2.
猜你喜欢
  • 1970-01-01
  • 2018-04-16
  • 2020-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
  • 2018-12-29
  • 1970-01-01
相关资源
最近更新 更多