OV2640在RGB模式下,这样取RGB值对吗?

2019-07-21 01:00发布

使用svga分辨率,即800*600。
问题一:   一帧结束之后这是不是意味着取到testsram里的数据只有480000个?即每个像素点的RGB值
                
问题二:   取到的数据类型是u16吧,即读到的数值应该是RGB三个的合成?然后再分解RGB,原子教程里面为什么是u32类型数据?

问题三:  我这样取对不对……我如果想看某一点的像素变化,是不是该把RGB三个分解之后相加,看值变化


以下是我在摄像头教程里的一些改动
u16 testsram[50000] __attribute__((at(0X68000000)));//外部sram地址数组
#define test_size 500000   //定义数组长度500000



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
lvehe
1楼-- · 2019-07-21 01:21
恕我直言,楼主需要补一下摄像头一些基础知识,至少要看懂原子的两个例程。一上来就搞图像识别之类的,步子迈太大容易扯着蛋。
一、RGB565模式下,800x600有480000个点,完整的一帧占960000个字节。
二、原子用u32是考虑到dcmi的特性,如果是RGB565模式,做类型转换即可。
三、虽不懂图像识别和图像变动侦测,但感觉对比单一像素变化是不靠谱的。如果只是对比单一像素变化,为什么一定要分解成RGB三 {MOD},直接u16数据对比就行了,除非你想对比三 {MOD}变化。
马小跳life
2楼-- · 2019-07-21 03:20
回复【2楼】lvehe:
---------------------------------
恩,你说的对,我不懂这个,所以不知道怎么办的……所以来求助。
一、 每一帧结束后,是960000个字节,我不太清楚一次的传输是刚好是一个像素点吗? 我理解是每次传输一个像素点到LCD-RAM上,就是u16,不然原来的传到LCDram上怎么显示呢?
二、 DCMI特性我是不懂额,在RGB565模式下,我贴出来的那段代码换成了u16的数组,这样子是不是有问题
三、我也不懂图像识别,但是u16的RGB是RRRRRGGGGGGBBBBB组成的,u16数据比的话比如除了B以外的高位数据R和G其本身如果有微小的变化,u16的值会整个变化非常大,不好比对,所以想到是分解

谢谢回复,本人愚钝,还在学习阶段,多多指教是想做的东西,有什么建议可以给的可以达到目的
马小跳life
3楼-- · 2019-07-21 05:39
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-21 05:57
回复【3楼】马小跳life:
---------------------------------
1,DCMI的DMA可以自动组合数据的,具体细节看参考手册。
2,换成u16,没问题。

一周热门 更多>