我有一个脚本,它使用OpenCV
并从一组图像python
创建视频(avi
格式)png
。
这些图像的分辨率很好。
问题是生成的视频的分辨率非常低。
如何提高分辨率?
低分辨率与图像格式有关吗?
代码:
writer = cv2.VideoWriter( "C:\Users\.../demo3_4.avi", -1, 1, ( width, height ) )
nFrames = 24
for i in range( 1, nFrames ):
img = cv2.imread( os.path.join( str( inf ), "colorraster%d.jpg"%i ) )
writer.write( img )
cv2.destroyAllWindows()
writer.release()
Run Code Online (Sandbox Code Playgroud)
生成具有合理像素大小的输出流frameSize
,并且不会破坏信息质量(您在上面已经说过在输入中(在静态像素图中))具有低FPS
每秒帧率的“累积产品”,而且 -有损编解码器 ( CV_FOURCC
)。
>>> print cv2.VideoWriter.__doc__
VideoWriter( [ filename,
fourcc, # <--------- ref. below
fps, # 1 fps
frameSize[, # 73 * 59 px
isColor ]
]
) -> <VideoWriter object>
>>> print cv2.cv.FOURCC.__doc__
CV_FOURCC(c1, c2, c3, c4) -> int
>>> cv2.cv.FOURCC( *"XVID" ) 1145656920
>>> cv2.cv.FOURCC( *"MJPG" ) 1196444237
>>> cv2.cv.FOURCC( *"X264" ) 875967064
>>> cv2.cv.FOURCC( *"DIB " ) 541215044
>>> cv2.cv.FOURCC( *"WMV1" ) 827739479
>>> cv2.cv.FOURCC( *"WMV2" ) 844516695
Run Code Online (Sandbox Code Playgroud)
FourCC是用于指定视频编解码器的 4 字节代码。可用代码列表可以在 fourcc.org 中找到。它依赖于平台。以下编解码器工作正常:在 Fedora 中:
DIVX
,XVID
,MJPG
,X264
,WMV1
,WMV2
。(XVID
更可取。MJPG
产生高尺寸视频。X264
给出非常小的视频)在 Windows 中:(DIVX
更多有待测试和添加)FourCC
cv2.VideoWriter_fourcc('M','J','P','G')
代码作为 或cv2.VideoWriter_fourcc(*'MJPG)
for传递MJPG
。
""" # >>> http://docs.opencv.org/master/dd/d43/tutorial_py_video_display.html#gsc.tab=0
fourcc = cv2.cv.FOURCC( *"DIB " )
video = cv2.VideoWriter( 'ATC_LKPR_output.avi', fourcc, 30, size ) # fps = 30, size = ( 1024, 512 )
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7961 次 |
最近记录: |