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

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

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

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

 

你可能感兴趣的:(matlab编程)