matlab读取图像是按列读取的,而其他一些编程软件读取图像是按行,下面给出转化的说明。
一幅raw图大小为1920*1080【看起来就是宽为1920,高为1080】下面语句是按行读出来的一列raw图
M=1080;N=1920;
fid=fopen('raw0.raw','r');
img=fread(fid,'uint16');
%按行读进来的,堆放数据为一列,数据内容为:第一行:1~1920,第二行:1~1920,放置1080次,每次放1920个。
比如一幅图像为8*2的图像【宽8,高2】ww=[1 2 3 4 5 6 7 8 ; 9 10 11 12 13 14 15 16]
按上面方式读取进来,应该为:ww=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16];
reshape(ww,[2,8]);
所以正常来讲,应该将其reshape(ww,[8,2]),然后使用转置,方可。
M=1080;N=1920;
fid=fopen('rawData_0.raw','r');
% disp('使用图像')
img=fread(fid,'uint16');
raw=reshape(img,[N,M]);%读入的图像是1920*1080
raw=raw';
dlmwrite('rawData_0.txt',raw);