Matlab 将矩阵(图像)写入.raw 格式文件

发布时间 2024-01-04 10:29:39作者: listjjjclove

笔者近期在将 bmp 图像格式图像转为 raw 过程中遇到了一些问题,主要是 fwrite 在写入矩阵时的元素顺序问题。要想保证存储后的 raw 图像能够正常的用 ps 打开,需要将元素按正确的顺序存储。

Matlab 中 fwrite 在写入矩阵时是列优先的,也就是先写入第 1 列,再第 2 列,以此类推,一直到写入完毕,所以直接将图像矩阵写入.raw 文件会导致 ps 打开后图像不对。在写入时应将图像矩阵的转置写入.raw 文件,这样就对了。

[img, map] = imread('test.bmp'); % 读取图像
fid = fopen('test.raw', 'wb');   % 存为raw
fwrite(fid, img', 'uint8');      % 注意将img转置
fclose(fid);