使用 imagemagick 从 YUV(UYVY) 转换为 RGB
Converting from YUV(UYVY) to RGB using 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) 深度为 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 字节。
如何转换图像?
我认为您指定的尺寸太大了。 Imagemagick 尝试用您提供的数据填充 space,但在完成之前遇到了 EOF。
确保 -size
参数反映了您要转换的图像的尺寸。
例如:
convert rose: UYVY:rose.uyv
convert -size 70x46 -depth 8 UYVY:rose.uyv -colorspace sRGB rose2.png
正如 Mark Setchell 在评论中所说,我尝试使用以下命令。
convert -verbose -size 736x480 UYVY:frame-99.yuv frame-99.bmp
而且我发现这很好用。
我有 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) 深度为 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 字节。
如何转换图像?
我认为您指定的尺寸太大了。 Imagemagick 尝试用您提供的数据填充 space,但在完成之前遇到了 EOF。
确保 -size
参数反映了您要转换的图像的尺寸。
例如:
convert rose: UYVY:rose.uyv
convert -size 70x46 -depth 8 UYVY:rose.uyv -colorspace sRGB rose2.png
正如 Mark Setchell 在评论中所说,我尝试使用以下命令。
convert -verbose -size 736x480 UYVY:frame-99.yuv frame-99.bmp
而且我发现这很好用。