STM32F103ZET6+OV7670串口成功输出图像数据,但显示出问题了!
具体为:我通过串口将OV7670拍摄的QVGA格式的图像(RGB565)发送到串口助手,然后以txt格式保存下来。再通过matlab将txt文件中每个像素的RGB565格式,转换为RGB格式,并显示。但结果如下图所示,请大家指点下错在哪里了呢?上面的图片为手机拍摄,下面的图像为OV7670拍摄并用matlab转换后的结果,比较可以发现图像错位并且发生了信号的反折。错位肯定不是摄像头抖动造成的,因通过多幅图像实现发现都是这样的错误显示!
下面为matlab,转化为正常RGB值的程序:
length=240;width=320;
in_name='0113.txt';%0213 1253.txt
out_name='0113.bmp';%0213
pic=uint8(zeros(length,width,3));
in=textread(in_name,'%s');
dec_data=hex2dec(in);
% dlmwrite('dec.txt',dec_data,'','');
% dec_test=dec_data(1:320);
k=1;
for i=1:length
for j=1:width
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);
---------------------------------
原子哥,我现在做的毕设是将OV7670采集的数据发送到电脑里的指定的文件夹中。楼主说的把OV7670拍摄的QVGA格式的图像(RGB565)发送到串口助手是参考历程中的串口实验实现的吗,如果不是的话应该怎么传呢?还有我想将图像存进电脑的文件夹中,是不是要在电脑上写一个上位机接受图像的软件,我在网上搜到一些用VC或者VB编的上位机图像处理软件不知道能不能用在我的设计上,本人刚接触stm32不久,请大神指点一下。
一周热门 更多>