关于STM32 OV2640如何提取处理RGB565数据的问题

2019-07-20 12:44发布

在做一个简单的图像处理任务,用STM32F407 和OV2640进行图像处理的时候遇到一个矛盾的问题。OV2640有两种数据格式输出,如果用JPEG格式,可以直接通过串口发送到电脑上显示,但JPEG是经过压缩的,处理起来很复杂;如果用RGB565模式输出,可以进行处理,但无法发送到上位机进行显示,直观上无法感知处理的结果如何。
原子哥关于摄像头的代码输出RGB565格式时是直接通过DMA将数据从DCMI搬运到LCD上,整个过程都是由硬件模块完成的,难以介入;
而JPEG格式时是直接将一帧图像存到一个数组里,再一个个发送到串口,所以我可以在发送之前增加一个对像素点信息的判断并重赋值操作,这时遇到了几个问题:
①我是直接改动的JPEG模式下的代码,使摄像头输出变为了RGB565模式,但软件处理上沿用的依旧是JPEG模式下逐一发送到串口的模式,这时发现jpeg_data_len=jpeg_buf_size-DMA_GetCurrDataCounter(DMA2_Stream1);得出的数据长度并不是所有像素点的个数的两倍,而是12672

QQ截图20170810115005.png


②如图,这样打开传输又关闭传输的意义是什么?
QQ截图20170810115402.png

③还是上面那张图,选中的那一行的算式怎么理解
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
WQL
2019-07-20 14:04
然后还有一个问题,改成RGB565输出模式下输出的数据不多不少正好是所有所有像素点的信息吗?就比如说如果输出160x120的图像,每个像素点占2字节,所有总共传输量就是120x160x2=38400个字节,因此对应程序里的jpeg_data_len就是38400/4=9600吗?可我在调试的时候显示值为9608,那个多出来的32字节数据是什么呢?

一周热门 更多>