根据要求进行修改:
我使用CV2比较两个屏幕截图,并刷新两个屏幕截图之间的指定时间延迟。如果两个图像之间存在差异(通过减去它们),我会得到不同的像素坐标。
我现在要做的是是在屏幕上实时显示这些差异(找到的像素坐标)的位置周围绘制框(或突出显示)。 不在图像中。就像监控摄像机在摄像机镜头中显示运动周围的绿框一样,我想在用户屏幕上这样做。
我在python3中进行图像比较和刷新循环的原因是因为我知道如何在python中执行它而没有其他语言。我尝试使用乌龟画一个矩形,但这会打开一个新的海龟窗口"并画一个盒子。我希望它以非侵入性的方式突出显示屏幕上的内容。到目前为止,这是我唯一尝试过的,因为我不知道从哪里开始。
编辑:
这是我当前脚本的样子:
pastebin.com/cYmDNZfv
答案 0 :(得分:0)
首先使用类似下面的内容来找到差异,然后使用OpenCV:Contours来获得如此形成的矩形的坐标!(我已经离开了轮廓部分供您使用!)
import cv2
l1 = cv2.imread('1.jpg')
l2 = cv2.imread('2.jpg')
diff1 = cv2.absdiff(l2, l1)
diff1 = cv2.cvtColor(diff1, cv2.COLOR_BGR2GRAY)
cv2.imshow('Difference between images', diff1)
cv2.waitKey(0)
cv2.destroyAllWindows()
使用上述代码后,您必须检测diff1
图像中的所有可用轮廓,然后使用cv2.rectangle(position,dimensions)
在重要轮廓周围绘制矩形!
有关轮廓的信息,请参阅:https://docs.opencv.org/3.0.0/d4/d73/tutorial_py_contours_begin.html
答案 1 :(得分:0)
现在假设特定比较运行有三个图像:
现在,我将如何解决这个问题。
步骤进行: