如何从txt文档中读取数据,并且在MATLAB中将图像显示出来 5
下图是OV7670采集到的图像并在屏上的显示下图是MATLAB显示的图像,为什么两者有那么大的差距,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);
希望能够得到大家的解答,谢谢各位了: 展开
下图是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);
希望能够得到大家的解答,谢谢各位了: 展开
2个回答
展开全部
load命令一般是对*.dat的数据文件进行读取吧! 我一般导入*.txt格式的数据文件时是先打开workspace窗口,在这个窗口的顶部有个工具按钮“Load data file...”,通过这个打开你的filename.txt文件!这种方法肯定不会有错的,你可以试试看!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询