猿问

将非标准分辨率的帧写入OpenCV中的视频

是否可以使用cv2.VideoWriter具有“非标准”视频分辨率(即非标准长宽比)的opencv创建视频?到目前为止,我的代码:


fourcc = cv2.VideoWriter_fourcc(*'XVID')

video_out = cv2.VideoWriter("video_out.avi", fourcc, 25, (99, 173))


cap = cv2.VideoCapture("video_in.avi")


while(cap.isOpened()):

    ret, frame = cap.read()

    frame_out = frame[50:50+173,400:400+99]      

    video_out.write(frame_out) 

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

        break

我也尝试了其他视频格式(H264,MJPG),但没有成功。


编辑:没有成功意味着创建输出视频,但保持为空。如果我使用原始帧大小,则帧确实会写入视频。


编辑:Micka的答案有效,但我现在也可以运行我的python代码:彩色视频输出的布尔参数丢失。


   video_out = cv2.VideoWriter("video_out.avi", fourcc, 25, (99, 173), False)


jeck猫
浏览 201回答 3
3回答

明月笑刀无情

cv2.VideoWriter("video_out.avi", fourcc, 25, (173, 99)) 为尺寸为173x99(宽x高)的框架创建编写器。frame_out 是尺寸为99x173的帧(该帧的索引为[y,x])。更改索引以写入匹配的帧大小。
随时随地看视频慕课网APP

相关分类

Python
我要回答