问题:OpenCV - 检查两个图像是否 100% 相同的最快方法

这里有很多问题可以检查两个图像是否“几乎”相似。

我的任务很简单。使用 OpenCV,我想知道两个图像是否 100% 相同。

它们将具有相同的大小,但可以使用不同的文件名保存。

解答

您可以使用逻辑运算符,例如xor运算符。如果您使用的是python可以使用以下一行函数:

Python

def is_similar(image1, image2):
    return image1.shape == image2.shape and not(np.bitwise_xor(image1,image2).any())

其中shape是显示矩阵大小的属性,而bitwise_xor顾名思义。 C++版本可以用类似的方式制作!

C++

请参阅@berak 代码。


注意:Python代码适用于任何深度图像(1-D、2-D、3-D ......),但C++版本仅适用于 2-D 图像。自己很容易将其转换为任何深度图像。我希望这能给你带来洞察力! :)

Doc:按位_xor

编辑:C++已被删除。感谢@Micka 和@berak 的评论。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐