下图是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);
希望能够得到大家的解答,谢谢各位了: