Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在opencv python中单击鼠标按钮在播放的视频上绘制形状_Python_Opencv_Mouseevent_Video Capture - Fatal编程技术网

如何在opencv python中单击鼠标按钮在播放的视频上绘制形状

如何在opencv python中单击鼠标按钮在播放的视频上绘制形状,python,opencv,mouseevent,video-capture,Python,Opencv,Mouseevent,Video Capture,首先,我应该承认这是一个相当长的问题,我没有通过谷歌搜索找到可能的解决方案 我有一段视频,其中一个入侵者试图闯入围栏的另一边 我可以跟踪入侵者,但当他在另一边时,我应该能够将入侵持续时间保存到一个文件中。入侵区域应该是这样的 我认为这些步骤: I. Reading a video file; II. Getting the very first frame displayed, 1. Pausing the video playback; 2. Manually drawing in

首先,我应该承认这是一个相当长的问题,我没有通过谷歌搜索找到可能的解决方案

我有一段视频,其中一个入侵者试图闯入围栏的另一边

我可以跟踪入侵者,但当他在另一边时,我应该能够将入侵持续时间保存到一个文件中。入侵区域应该是这样的

我认为这些步骤:

I. Reading a video file;
II. Getting the very first frame displayed,
  1. Pausing the video playback;
  2. Manually drawing intrusion area on that frame with a mouse; (making draw and reset buttons as events maybe)
  3. Replaying the video again
III. Waiting for the intruder to appear, etc. (III part is not important)
到目前为止,我已经完成了I和II(愚蠢,我知道),应该完成步骤II的1、2、3子部分

import cv2

file  = "intrusion.mp4"
capture = cv2.VideoCapture(file)

ret, firstFrame= capture.read()

while True:
    cv2.imshow("First Frame", firstFrame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cv2.destroyAllWindows()
我希望你能给出你的建议和指示

PS:参考任何相关帖子、博客或链接,我很高兴发现添加cv2。waitKey(0)将无限期暂停您的while循环!只有在按下任何键后,它才会恢复

我想你想要实现的是使用背景减法的目标跟踪。看看它是否符合你的要求

编辑:


我猜你想为入侵区域画一个徒手形状!会指引你去做的。我希望这有帮助

谢谢你的链接,我已经看过了。目前我在跟踪方面没有问题,我只想在视频帧上画一个形状,这样就可以将绘制的区域保留为入侵区域。我的程序中已经有一个跟踪模块。无论如何,非常感谢!嗨,看看我的最新答案!你要找的东西已经被问到并回答了(部分)。我已经给出了答案的链接,我已经更新了我的答案。看一看是的,我看到了,但我不能概括我的情况,在链接中,它是一个图像,我的是视频帧,我可以画一个形状,但它应该继续播放,我失败了。