阿波罗的OV5640摄像头实验的输出图像为何总是压扁状态?

2019-07-20 20:01发布

我把输出尺寸改为 600x800,比例仍然压扁。RGB模式。

OV5640_OutSize_Set(0, 0, 600, 800);
        DCMI_Start();                                                                  //Æô¶ˉ′«êä
        LCD_Clear(BLACK);



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
HenryYam
1楼-- · 2019-07-20 22:43
明白了,是用的RGB屏,所以图像输出水平镜像,宽度为600则高度为450,这样设置输出图像比例就合适了。

OV5640_OutSize_Set(0, 0, 600, 450);

HenryYam
2楼-- · 2019-07-21 00:05
能否设置垂直镜像呢?如何设置?
HenryYam
3楼-- · 2019-07-21 03:08
就是说,如何用OV5640模块获取宽高比为3:4的(竖立的)图像呢?

以前用OV2640的时候图像输出是竖立的。
HenryYam
4楼-- · 2019-07-21 04:56
本帖最后由 HenryYam 于 2016-9-17 22:18 编辑

终于搞定了。

1,OV5640_OutSize_Set(4, 0, 600, 800);  //不明白的是,这里的第一个参数 “4”是何意义?

2,void rgblcd_dcmi_rx_callback(void) 这个函数定义里面,最后要添加一行:

//if(CurrentLineNo < lcddev.height) CurrentLineNo ++;
    if(CurrentLineNo < 800) CurrentLineNo ++;
        else CurrentLineNo = 0; //这一行是后加上去的。如果没有这一行,则图像最下部分有条重影带。

3,最重要的一点,是要改变画面比例。这需要在 ov5640cfg.h 文件中的 const u16 ov5640_rgb565_reg_tbl[][2] 定义中,修改以下几行:

//        0x3800, 0x00, // HS
//        0x3801, 0x00, // HS
//        0x3802, 0x00, // VS
//        0x3803, 0x00, // VS
//        0x3804, 0x0a, // HW (HE)  2623 = 2592+16+16-1
//        0x3805, 0x3f, // HW (HE)
//        0x3806, 0x06, // VH (VE)  1705 = ? 不明白这个数字是怎么来的?垂直方向上不是有1944个点吗,怎么只有1706个点了?
//        0x3807, 0xa9, // VH (VE)
   
   
    0x3800, 0x02, // HS
        0x3801, 0x91, // HS
        0x3802, 0x00, // VS
        0x3803, 0x00, // VS
        0x3804, 0x07, // HW (HE)  1935 (1278 x 1705)
        0x3805, 0x8f, // HW (HE)
        0x3806, 0x06, // VH (VE)
        0x3807, 0xa9, // VH (VE)

以上注释掉的是原来的数值。

一周热门 更多>