如何将视频帧分成9个部分?

时间:2017-05-05 15:08:49

标签: python opencv video video-processing

我在Python3中使用Opencv2 我正在写"镜头边界检测"新闻视频节目。
我只需要将视频帧分成9个部分作为开​​头。但是,我不知道如何做到这一点,我是这个领域的新人。我是通过裁剪做到的,但在我看来,将框架拆分成碎片是不对的。

注意:当我使用"我的标题"进行搜索时,我无法达到ROI答案。但现在看来这就是投资回报率。

1 个答案:

答案 0 :(得分:6)

您需要使用投资回报率并在数组中添加不同的图像。

我用我的猫测试过:

enter image description here

这里有代码:(按键' q'完成代码)

import cv2

cap = cv2.VideoCapture(0)
n_rows = 3
n_images_per_row = 3

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()
    height, width, ch = frame.shape

    roi_height = height / n_rows
    roi_width = width / n_images_per_row

    images = []

    for x in range(0, n_rows):
        for y in range(0,n_images_per_row):
            tmp_image=frame[x*roi_height:(x+1)*roi_height, y*roi_width:(y+1)*roi_width]
            images.append(tmp_image)

    # Display the resulting sub-frame
    for x in range(0, n_rows):
        for y in range(0, n_images_per_row):
            cv2.imshow(str(x*n_images_per_row+y+1), images[x*n_images_per_row+y])
            cv2.moveWindow(str(x*n_images_per_row+y+1), 100+(y*roi_width), 50+(x*roi_height))

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()