fourcc = cv2.VideoWriter_fourcc(*‘XVID‘)中的fourcc和*‘XVID‘有什么区别呢?

问题描述:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

fourcc = cv2.VideoWriter_fourcc(*'XVID')

out= cv2.VideoWriter('output.avi',fourcc, 20.0,(640,480))

while (cap.isOpened()):
    ret, frame = cap.read()
    if ret == True:
        frame = cv2.flip(frame, 0)
        out.write(frame)
        cv2.imshow('frame', frame)

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

cap.release()
out.release()
cv2.destroyAllWindows()

请问这里的fourcc = cv2.VideoWriter_fourcc(*'XVID') 中的fourcc和*'XVID'有什么区别呢?

out= cv2.VideoWriter('output.avi',fourcc, 20.0,(640,480))中的'output.avi'是什么意思呢?

if cv2.waitKey(1) & 0xFF == ord('q'):中的1是什么意思呢?

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

        break整体是什么意思呢?

如果100毫秒之后按下了q键会不会退出窗口呢?为什么要设置1而不设置100呢? 

问题解答:

  • fourcc = cv2.VideoWriter_fourcc(*'XVID'):

    • fourcc:变量,用于存储视频编解码器的四字符代码。
    • *'XVID':表示将字符串 'XVID' 拆分为字符并作为参数传递给 cv2.VideoWriter_fourcc,用于获取对应的编码器代码。
  • out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480)):

    • 'output.avi':这是输出视频文件的名称,程序将生成一个名为 output.avi 的文件来保存捕获的视频。
  • if cv2.waitKey(1) & 0xFF == ord('q')::

    • 1:表示等待 1 毫秒检查键盘输入。在每次循环中,程序会短暂停止,检查用户是否按下了某个键。
  • if cv2.waitKey(1) & 0xFF == ord('q'): 整体意思

    • 这行代码的作用是:在每次循环迭代时检查键盘输入。如果用户在 1 毫秒内按下了 'q' 键,程序将执行 break,退出循环。
  • 关于 100 毫秒按下 'q' 的问题

    • 如果在 100 毫秒后按下 'q',程序并不会立即退出,因为 waitKey(1) 每次只检查 1 毫秒。如果在下次循环时检查到 'q',程序就会退出。
  • 为什么设置为 1 毫秒而不是 100 毫秒

    • 设置为 1 毫秒可以让程序更快地响应用户输入,提升实时性和流畅性。如果设置为 100 毫秒,用户可能需要等待更长时间才能退出程序,这样会影响使用体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神笔馬良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值