关于OV7670摄像头的分辨率设置
最近一直在纠结如何把OV7670输出的图片分辨率缩小,以减少数据量来适应数据的传输,在网上看了好多也没有关于寄存器的具体设置,最终又读了几遍数据手册,加上网友们写的帖子的启发,总结出如下结论,希望大家批评指正。
Ov7670的寄存器中跟分辨率有关的寄存器主要是一下几个:0x17HSTART输出格式-行频开始高八位(低三位在HREF[2:0])0x18HSTOP输出格式-行频结束高八位(低三位在HREF[5:3])0x19VSTRT输出格式-场频开始高八位(低二位在VREF[1:0])0x1AVSTOP输出格式-场频结束高八位(低二位在VREF[3:2])0x03VREF位[3:2]VREF结束的低两位(高八位见VSTOP[7:0]
位[1:0]VREF开始的低两位(高八位见VSTOP[7:0]
0x32HREF读写HREF控制
位[5:3]:HREF结束的低3位(高8位在HSTOP)位[2:0]:HREF结束的低3位(高8位在HSTOP)
网上给的一般的设置方式是这样的:QVGARGB565320*240

这样我们就可以写一个简单的函数来设置OV7670的分辨率了
输入图像的行起始点,场起始点,宽度,高度计算得到相应寄存器的值编译环境:keilmdk
voidOV7670_config_window(u16startx,u16starty,u16width,u16height){
u16endx=(startx+width*2)%784;u16endy=(starty+height*2);u8x_reg,y_reg;u8state,temp;
state=rdOV7670Reg(0x32,&x_reg);x_reg&=0xC0;
state=rdOV7670Reg(0x03,&y_reg);y_reg
&=0xF0;
//设置HREF
temp=x_reg|((endx&0x7)<<3)|(startx&0x7);state=wrOV7670Reg(0x32,temp);temp=(startx&0x7F8)>>3;
state=wrOV7670Reg(0x17,temp);temp=(endx&0x7F8)>>3;
state=wrOV7670Reg(0x18,temp);
//设置VREF
temp=y_reg|((endy&0x3)<<2)|(starty&0x3);state=wrOV7670Reg(0x03,temp);temp=(starty&0x3FC)>>2;
state=wrOV7670Reg(0x19,temp);temp=(endy&0x3FC)>>2;
state=wrOV7670Reg(0x1A,temp);

}

关于OV7670摄像头的分辨率设置的更多相关文章

  1. AForge调用摄像头拍照时设置分辨率

    简单记录下AForge2.2.5.0版本调用摄像头拍照时设置分辨率的方法. FilterInfo info = _videoDevices[0];//获取第一个摄像头 _cameraDevice = ...

  2. WebRTC视频分辨率设置

    前面我们能够打开摄像头.getUserMedia()时会传入参数,在参数里我们可以指定宽高信息.通过宽高参数控制输出的视频分辨率. html 在页面上摆放一些元素,下面是主要部分 <div id ...

  3. vbox下android分辨率设置

    VBoxManage setextradata "android" "CustomVideoMode1" "1280x800x16" 1.  ...

  4. Unity 开发游戏Game分辨率设置

    最近自己开发小游戏,突然又被Game视图中设置分辨率被诱惑了, 我到底该怎么设置分辨率设置的图片才能让电脑和手机尺寸显示的大小一模一样呢? 然后又被手机尺寸和分辨率迷惑了! =.= 越搞越混   分辨 ...

  5. vmware下Ubuntu屏幕分辨率设置

    1.查看现有设备 xrandr -q 输出如下: Screen 0: minimum 1 x 1, current 800 x 600, maximum 8192 x 8192 Virtual1 co ...

  6. Linux系统分辨率设置

    linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下. 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System S ...

  7. 项目实战:Qt+Ffmpeg+OpenCV相机程序(打开摄像头、支持多种摄像头、分辨率调整、翻转、旋转、亮度调整、拍照、录像、回放图片、回放录像)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  8. mac用virtualbox 装win7联网及分辨率设置

    1.关掉虚拟机,进入设置 2.选择网络->NAT方式->高级->控制芯片选择 1000MT 桌面,其他默认勾选 通过安装增强功能,可以随意改变分辨率,但是系统和远程连接后,东西都被缩 ...

  9. centos6分辨率设置

    问题描述 centos 6.9最小化安装后, 分辨率会很大, 当然也可以最小化VM虚拟机, 但是有强迫症的朋友可以设置一下. 解决方法 打开/etc/grub.conf配置文件, 在kernel 的最 ...

随机推荐

  1. T-SQL Part X: UNION, EXCEPT and INTERSECT

    MSDN上关于EXCEPT和INTERSECT的文档.MSDN上关于UNION的文档. 值得注意的是,UNION其实有两种,一种是普通的UNION,另外一种是UNION ALL.加上EXCEPT和IN ...

  2. C++中对封装的语法支持——重载运算符

    重载运算符 1.对于自定义类型,编译器不知道运算规则,而重载运算符会将两个对象相加转换为函数调用. 2.运算符重载转换的函数调用,函数名字是固定的规则. (1) 如果重载+号运算符,函数名字就是:op ...

  3. 2019CSP day1t2 括号树

    题目背景 本题中合法括号串的定义如下: () 是合法括号串. 如果 A 是合法括号串,则 (A) 是合法括号串. 如果 A,B 是合法括号串,则 AB 是合法括号串. 本题中子串与不同的子串的定义如下 ...

  4. java课笔记

    http://127.0.0.1:8088/ http://127.0.0.1:8088/test/index.jsp http://127.0.0.1:8088/test/show 用户 (请求) ...

  5. javescript 的 对象

    一,定义:对象是JavaScript的一个基本数据类型,是一种复合值,它将很多值(原始值或者其他对象)聚合在一起,可通过名字(name/作为属性名)访问这些值.即属性的无序集合. 关键是name属性名 ...

  6. svn文件被锁不能提交的解决办法

    记录工作中遇到的问题,分享出来: 前端时间在提交项目到svn遇到一个问题, 提交的时候提示:文件已经锁定!如下图: 原因是我之前提交的时候不小心中途停了,导致文件被锁,然后也没在意那么多, 趁着今天有 ...

  7. PostGIS 结合Openlayers以及Geoserver实现最短路径分析(三)

    接上篇,前面在ArcMap中和Postgis中将数据都已经进行了预处理. 接下来回到Geoserver中,进行数据发布. 1.新建工作区 2.填写完工作区信息 3.打开数据存储,添加新的数据存储 4. ...

  8. C博客作业05--2019-指针

    0.展示PTA总分 1.本章学习总结 1.1 学习内容总结 1.2 本章学习体会 2.PTA实验作业 2.16 -7 输出月份英文名 2.1.1 伪代码 char* getmonth(int n) { ...

  9. 安装anaconda后启动终端头部会有(base)如何解决

    conda config --show conda config --set auto_activate_base False

  10. NTP服务编译安装报错:/usr/bin/ld: cannot find –lcap

    [root@localhost local]# find / -name "*libcap.so*" [root@localhost ntp-4.2.8p13]# cd /usr/ ...