STM32F103ZET6+OV7670串口成功输出图像数据,但显示出问题了 『求解』

2019-07-21 01:52发布

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);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
38条回答
qinshuhou
1楼-- · 2019-07-22 20:14
回复【10楼】ichina:
---------------------------------
一帧图像是153600字节,我发送完成用了15秒诶,
我有一颗骑士心
2楼-- · 2019-07-22 22:54
楼主能开源吗,最近也在做个图像由串口输出的实验,但RGB值始终不对啊
u10024127
3楼-- · 2019-07-23 01:00
 精彩回答 2  元偷偷看……
zhenshihaonan
4楼-- · 2019-07-23 05:55
回复【3楼】正点原子:
---------------------------------
      原子哥,我现在做的毕设是将OV7670采集的数据发送到电脑里的指定的文件夹中。楼主说的把OV7670拍摄的QVGA格式的图像(RGB565)发送到串口助手是参考历程中的串口实验实现的吗,如果不是的话应该怎么传呢?还有我想将图像存进电脑的文件夹中,是不是要在电脑上写一个上位机接受图像的软件,我在网上搜到一些用VC或者VB编的上位机图像处理软件不知道能不能用在我的设计上,本人刚接触stm32不久,请大神指点一下。
zhenshihaonan
5楼-- · 2019-07-23 09:32
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-23 10:13
回复【18楼】zhenshihaonan:
---------------------------------
最好有协议回复

【16楼】zhenshihaonan:
---------------------------------
现成代码没有哦,你这个就printf打印出去就可以了,不难啊

一周热门 更多>