VideoCapture Crop出现TypeError

时间:2019-06-19 15:46:04

标签: python numpy opencv video-streaming crop

我一直在尝试使用numpy切片来裁剪视频帧,如有关如何通过OpenCV裁剪视频的其他答案所建议的那样。我将实时视频捕获设置如下:

vs = VideoCapture(1)
vs.set(cv2.CAP_PROP_FRAME_WIDTH,100)
vs.set(cv2.CAP_PROP_FRAME_HEIGHT,100)

然后我创建一个while循环来循环视频流中的帧:

while True:
   frame = vs.read()
   cropped = frame[160:450, 170:470]

但是,当我运行脚本时,返回错误,指出:

  

已裁剪=帧[160:450,170:470]

     

TypeError:元组索引必须是整数或切片,而不是元组

有人对此问题有解决方案吗?

1 个答案:

答案 0 :(得分:1)

您错误地调用了cv2.VideoCapture.read()函数。该函数返回一个元组(ret_val, frame)。您正在将该元组另存为frame变量。由于尝试拼接该元组,因此出现错误。您可以使用print(type(frame))进行确认。

如果将行更改为ret_val, frame = vs.read(),该功能将按预期工作并且图像已正确拼接