VideoCapture 裁剪的 TypeError
Posted
技术标签:
【中文标题】VideoCapture 裁剪的 TypeError【英文标题】:TypeError with VideoCapture Crop 【发布时间】:2019-06-19 15:46:04 【问题描述】:我一直在尝试使用 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】:您错误地调用了cv2.VideoCapture.read()
函数。该函数返回一个元组(ret_val, frame)
。您将该元组保存为 frame
变量。您收到错误是因为您正在尝试拼接该元组。您可以使用print(type(frame))
确认这一点。
如果你把这行改成ret_val, frame = vs.read()
,功能就如你所愿,图片拼接正确
【讨论】:
以上是关于VideoCapture 裁剪的 TypeError的主要内容,如果未能解决你的问题,请参考以下文章