OV2640 输出指定区域的像素值

2019-07-20 05:52发布

假设摄像头输出的起始位置为(0,0),输出尺寸为640*480。
我想从位置(50,50),输出尺寸为320*240的图像。
不知道是不是用的这个函数进行设置:OV2640_Window_Set
我试过用这个函数,但是输出显示在LCD上的图像不对,请问应该怎么用这个函数?
谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-20 05:59
用这个:
[mw_shl_code=c,true]//设置图像开窗大小 //由:OV2640_ImageSize_Set确定传感器输出分辨率从大小. //该函数则在这个范围上面进行开窗,用于OV2640_OutSize_Set的输出 //注意:本函数的宽度和高度,必须大于等于OV2640_OutSize_Set函数的宽度和高度 // OV2640_OutSize_Set设置的宽度和高度,根据本函数设置的宽度和高度,由DSP // 自动计算缩放比例,输出给外部设备. //width,height:宽度(对应:horizontal)和高度(对应:vertical),width和height必须是4的倍数 //返回值:0,设置成功 // 其他,设置失败 u8 OV2640_ImageWin_Set(u16 offx,u16 offy,u16 width,u16 height) { u16 hsize; u16 vsize; u8 temp; if(width%4)return 1; if(height%4)return 2; hsize=width/4; vsize=height/4; SCCB_WR_Reg(0XFF,0X00); SCCB_WR_Reg(0XE0,0X04); SCCB_WR_Reg(0X51,hsize&0XFF); //设置H_SIZE的低八位 SCCB_WR_Reg(0X52,vsize&0XFF); //设置V_SIZE的低八位 SCCB_WR_Reg(0X53,offx&0XFF); //设置offx的低八位 SCCB_WR_Reg(0X54,offy&0XFF); //设置offy的低八位 temp=(vsize>>1)&0X80; temp|=(offy>>4)&0X70; temp|=(hsize>>5)&0X08; temp|=(offx>>8)&0X07; SCCB_WR_Reg(0X55,temp); //设置H_SIZE/V_SIZE/OFFX,OFFY的高位 SCCB_WR_Reg(0X57,(hsize>>2)&0X80); //设置H_SIZE/V_SIZE/OFFX,OFFY的高位 SCCB_WR_Reg(0XE0,0X00); return 0; } [/mw_shl_code]
zhy
2楼-- · 2019-07-20 07:59
回复【2楼】正点原子:
---------------------------------
好的,谢谢!
实验已经成功!
电气明铭
3楼-- · 2019-07-20 11:37
 精彩回答 2  元偷偷看……
asdf89
4楼-- · 2019-07-20 13:11
挺复杂的

一周热门 更多>