OpenCV VideoWriter 问题 - 视频中的 RGB 列
OpenCV VdeoWriter problems - RGB columns in the video
我正在尝试进行一些视频处理,但不知道如何输出结果。我需要一个 RGB 视频。当我写这样的代码时,我希望输出是一个白色的 200x100 矩形:
oy = 100
ox = 200
wri = cv2.VideoWriter("output/vid.avi", cv2.VideoWriter_fourcc(*"MJPG"), 30.0, (ox, oy))
testarr = np.empty((oy, ox, 3))
testarr.fill(255.0)
for i in range(500):
wri.write(testarr)
但是,我得到了这个:
我尝试使用MJPG
(他们说这是最安全的选择)、XVID
、DIVX
并更改视频格式,一切都一样。
我什至不知道是哪个部分导致了问题:我应该寻找不同的编解码器吗?或者我使用了错误的数组结构?
您的代码在 4.0.0
中不起作用。因此我将 testarr
变量重新定义为:
testarr = np.empty((oy, ox, 3), dtype="uint8")
然后出现白底视频。
您可以将 .avi
与 MJPG
代码一起使用 here
但是如果您打算使用 XVID
或 DIVX
,您需要将代码初始化为 MP4V
我正在尝试进行一些视频处理,但不知道如何输出结果。我需要一个 RGB 视频。当我写这样的代码时,我希望输出是一个白色的 200x100 矩形:
oy = 100
ox = 200
wri = cv2.VideoWriter("output/vid.avi", cv2.VideoWriter_fourcc(*"MJPG"), 30.0, (ox, oy))
testarr = np.empty((oy, ox, 3))
testarr.fill(255.0)
for i in range(500):
wri.write(testarr)
但是,我得到了这个:
我尝试使用MJPG
(他们说这是最安全的选择)、XVID
、DIVX
并更改视频格式,一切都一样。
我什至不知道是哪个部分导致了问题:我应该寻找不同的编解码器吗?或者我使用了错误的数组结构?
您的代码在 4.0.0
中不起作用。因此我将 testarr
变量重新定义为:
testarr = np.empty((oy, ox, 3), dtype="uint8")
然后出现白底视频。
您可以将 .avi
与 MJPG
代码一起使用 here
但是如果您打算使用 XVID
或 DIVX
,您需要将代码初始化为 MP4V