使用imagemagick从YUV(UYVY)转换为RGB

时间:2018-06-11 08:40:15

标签: image imagemagick

我有YUV图像。在windows7中,yuvplayer可以打开它们,格式为UYVY。

我希望在Linux环境中将其中一个图像转换为RGB。

我想我可以使用imagemagick进行转换。但是发生以下错误。

1)没有-depth 8

$ convert -verbose -size 736x480 yuv:frame-99.yuv frame-99.bmp
yuv:frame-99.yuv=>frame-99.yuv YUV 736x480 736x480+0+0 16-bit DirectClass 707KB 0.040u 0:00.050
yuv:frame-99.yuv=>frame-99.bmp YUV 736x480 736x480+0+0 16-bit DirectClass 1.057MB 0.360u 0:00.129
convert.im6: unexpected end-of-file `frame-99.yuv': No such file or directory @ error/yuv.c/ReadYUVImage/440.

2)with -depth 8

$ convert -verbose -size 736x480 -depth 8 yuv:frame-99.yuv frame-99.bmp
yuv:frame-99.yuv=>frame-99.yuv[0] YUV 736x480 736x480+0+0 8-bit DirectClass 707KB 0.060u 0:00.070
yuv:frame-99.yuv=>frame-99.yuv[1] YUV 736x480 736x480+0+0 8-bit DirectClass 707KB 0.020u 0:00.039
yuv:frame-99.yuv=>frame-99-0.bmp[0] YUV 736x480 736x480+0+0 8-bit DirectClass 1.057MB 0.670u 0:00.240
yuv:frame-99.yuv=>frame-99-1.bmp[1] YUV 736x480 736x480+0+0 8-bit DirectClass 1.057MB 0.870u 0:00.280
convert.im6: unexpected end-of-file `frame-99.yuv': No such file or directory @ error/yuv.c/ReadYUVImage/440.

此文件的大小为706560字节。

如何转换图片?

2 个答案:

答案 0 :(得分:1)

我尝试使用下面的命令,正如Mark Setchell在评论中说的那样。

convert -verbose -size 736x480 UYVY:frame-99.yuv frame-99.bmp

我发现这很有效。

答案 1 :(得分:0)

我相信你指定的尺寸太大了。 Imagemagick尝试使用您提供的数据填充空间,但在完成之前会遇到EOF。
确保-size参数反映您要转换的图片的尺寸。

例如:

convert rose: UYVY:rose.uyv
convert -size 70x46 -depth 8 UYVY:rose.uyv -colorspace sRGB rose2.png