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

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

我的任务很简单。使用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图像。自己轻松将其转换为任何深度图像。希望能为您提供见识! 🙂

文件:bitwise_xor

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

python opencv-斑点检测或圆形检测 - python

我在检测圆形区域时遇到问题。我使用来自opencv的HoughCircles函数进行了尝试。但是,即使图像非常相似,该功能的参数也必须不同才能检测到卷。我尝试的另一种方法是遍历每个像素,并检查当前像素是否为白色。如果是这种情况,请检查该区域中是否有斑点对象(到斑点中心的距离小于阈值)。如果存在,则将像素附加到斑点,如果没有,则创建一个新的斑点。这也不能正常工…

OpenCV 2.4 VideoCapture在Windows上不起作用 - python

我正在使用Python绑定到通过以下instructions安装的OpenCV 2.4。我的问题类似于this one,但是我需要Windows计算机解决方案。问题:当我尝试使用时cap = cv2.VideoCapture(0) print cap.grab() 它工作正常,但是以下代码cap = cv2.VideoCapture(filename) pr…

阈值图像数组和渲染的有效方法-Python / NumPy / OpenCV - python

我有一台相机正在将图像数据发送到我的计算机。从那里,我的python脚本将8位颜色信息(黑白;范围从0-黑色-255-白色)放入numpy数组。数组为2D,第一维最大为384,第二维最大为288使用openCV窗口显示此效果很好,并且实时视频超过24fps。我现在的目标是操纵图像,以便实时视频将低于200的任何颜色值显示为0(完全为黑色),将高于200的任何…

解析netParameter文件失败 - python

>py yolo.py --video-path='F:/Data_Science/Python37/Scripts/YOLO/videos/lowres.mp4' Traceback (most recent call last): File "yolo.py", line 88, in <module&…

AttributeError:“模块”对象没有属性“xfeatures2d” [Python / OpenCV 2.4] - python

这行:sift = cv2.xfeatures2d.SIFT_create() 返回错误:Traceback (most recent call last): File "C:/Python27/openCVskrypty/GUI/SOLUTION2.py", line 11, in <module> sift = cv2.x…