【问题标题】:TypeError with VideoCapture CropVideoCapture 裁剪的 TypeError
【发布时间】: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:元组索引必须是整数或切片,而不是元组

有人有解决这个问题的办法吗?

【问题讨论】:

    标签: python numpy opencv video-streaming crop


    【解决方案1】:

    您错误地调用了cv2.VideoCapture.read() 函数。该函数返回一个元组(ret_val, frame)。您将该元组保存为 frame 变量。您收到错误是因为您正在尝试拼接该元组。您可以使用print(type(frame)) 确认这一点。

    如果你把这行改成ret_val, frame = vs.read(),功能就如你所愿,图片拼接正确

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 2022-01-23
      • 2011-04-19
      相关资源
      最近更新 更多