使用opencv和python在保存的视频上单击鼠标事件



我想在保存的视频中画一个矩形。绘制矩形时,视频必须冻结。我成功地在图像上绘制了一个矩形,但我不知道如何使用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)库中,双击可停止矩形选择过程并继续播放视频。

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新