调整Cap的四帧视频大小

时间:2016-08-23 18:24:51

标签: python opencv

嗨我有这个建议给我的代码块,我正在尝试使用Cap设置宽度和高度来修改它,以调整四边形显示的整体大小,但是每次运行它都会抛出这个ValueError:不能广播输入数组从形状(240,320)到形状(480,640)。当然,数字会根据我如何修改集合中的大小值而改变。我的总体目标是将四边形框架插入一个tkinter gui,我现在正在显示单个通道就好了。目前我的gui显示640x480频道,我想将四边形显示到相同大小的帧中。这是当前的代码:

$myarray = array("search1", "search2");

if(var_dump($myarray) == array){
  //do something
}

1 个答案:

答案 0 :(得分:0)

将cap.set和颜色形状移动到读取位置后修复我的问题。

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
ret, frame = cap.read()

while(True):
    ret, frame = cap.read()
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, int(640 *.5))
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, int(480 *.5))
    red = np.zeros(frame.shape, 'uint8')
    green = np.zeros(frame.shape, 'uint8')
    blue = np.zeros(frame.shape, 'uint8')
    b, g, r = cv2.split(frame)

    red[..., 0], red[..., 1], red[..., 2] = r, r, r
    green[..., 0], green[..., 1], green[..., 2] = g, g, g
    blue[..., 0], blue[..., 1], blue[..., 2] = b, b, b

    final = cv2.vconcat((
        cv2.hconcat((frame, red)),
        cv2.hconcat((green, blue))
    ))

    cv2.imshow('frame', final)

    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break

cap.release()
cv2.destroyAllWindows()