我想在保存的视频中画一个矩形。绘制矩形时,视频必须冻结。我成功地在图像上绘制了一个矩形,但我不知道如何使用opencv和python在保存的视频上绘制矩形。
我需要一个使用opencv的ROI选择机制,我终于想好了如何实现它
实现可以在这里找到(opencvdrarect)。它使用opencv 3.1.0和Python 2.7
对于保存的视频,直到您没有阅读并显示另一帧为止,该视频将被视为暂停。
关于如何将其添加到暂停的视频(帧)中,下面的代码可能会有所帮助。
import cv2
import selectinwindow
wName = "select region"
video = cv2.VideoCapture(videoPath)
while(video.isOpened()):
# Read frame
ret, RGB = video.read()
frameCounter += 1
if frameCounter == 1 : # you can pause any frame you like
rectI = selectinwindow.dragRect
selectinwindow.init(rectI, I, wName, I.shape[1], I.shape[0])
cv2.namedWindow(wName)
cv2.setMouseCallback(wName, selectinwindow.dragrect, rectI)
while True:
# display the image
cv2.imshow(wName, rectI.image)
key = cv2.waitKey(1) & 0xFF
# if returnflag is set break
# this loop and run the video
if rectI.returnflag == True:
break
box = [rectI.outRect.x,rectI.outRect.y,rectI.outRect.w,rectI.outRect.h]
# process the video
# ...
# ...
在(opencvdrarect)库中,双击可停止矩形选择过程并继续播放视频。
希望这能有所帮助。