如何从txt文档中读取数据,并且在MATLAB中将图像显示出来

下图是OV7670采集到的图像并在屏上的显示

下图是MATLAB显示的图像,为什么两者有那么大的差距,MATLAB的程序怎么写才可以得到清晰的图像便于我图像处理方面的工作

下面的MATLAB中的程序:
length=240;width=320;
in_name='ov7670.txt';
out_name='ov7670.bmp';
pic=uint8(zeros(length,width,3));%构造一个三维矩阵,大小为240*320*3

in=textread(in_name,'%s');%从文件中读取数据
dec_data=hex2dec(in);%把字符串表示的16进制数转换成一个十进制数
% dlmwrite('dec.txt',dec_data,'','');
% dec_test=dec_data(1:320);
k=1;
for i=1:length %for i=1:240
for j=1:width %for j=1:320
H=dec_data(k,1);
if(k+1>width*length*2)
k=k-1;
else
k=k;
end
L=dec_data(k+1,1);
k=k+2;
pic(i,j,1)=(H/8)*8;
pic(i,j,2)=(mod(H,8)*8+L/32)*4;
pic(i,j,3)=(mod(L,32))*8;
end
end
figure,imshow(pic);
imwrite(pic,out_name);
希望能够得到大家的解答,谢谢各位了:

第1个回答  推荐于2018-04-21
load命令一般是对*.dat的数据文件进行读取吧! 我一般导入*.txt格式的数据文件时是先打开workspace窗口,在这个窗口的顶部有个工具按钮“Load data file...”,通过这个打开你的filename.txt文件!这种方法肯定不会有错的,你可以试试看!本回答被网友采纳
第2个回答  2015-01-11
这样看你原来的ov7670.txt文件是按照什么规则储存的
必须要知道原来文件中每一个数据代表的意思是什么

看你得到的matlab中的图像还能大概看到图像轮廓
那么可能是解读文件的方式不对,lsb和msb顺序不对,或者是颜色表示的制式不对

至于图像方向不对,是储存顺序的问题,也是不难解决的本回答被网友采纳
相似回答