YUV 的 4:2:0 采样格式,省空间、效率高,常见于视频编码。用 MATLAB 这种格式的 YUV 数据,挺有意思也挺实用的。
这个项目就是教你怎么把 4:2:0 的 YUV 序列转成 BMP 图像,还能一帧帧保存,挺适合做图像预览、可视化调试那类需求。
先用fread
读取原始 YUV 数据,再用插值把 U、V 通道补齐分辨率。YUV 的格式有点讲究,是分量比例和字节顺序,一定要对上,不然图像全花了。
插值推荐用interp2
,写起来清晰,而且效果还不错。再用矩阵转换公式或者yuv2rgb
把 YUV 转成 RGB,注意 YUV 值范围一般不在 0-255,转之前要归一化或者缩放一下。
用imwrite
保存成 BMP,文件直接就能在系统上预览。整体代码逻辑不复杂,就是细节上要注意采样对应关系和边界对齐,比如图像宽高得是偶数。
源码就在yuv2bmp.zip
里,改一改也能扩展到 YUV 转 JPG、批量啥的。如果你平时 YUV 素材多,用 MATLAB 也熟,这工具还蛮好用的。