关于OV7670摄像头的分辨率设置
关于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摄像头的分辨率设置的更多相关文章
- AForge调用摄像头拍照时设置分辨率
简单记录下AForge2.2.5.0版本调用摄像头拍照时设置分辨率的方法. FilterInfo info = _videoDevices[0];//获取第一个摄像头 _cameraDevice = ...
- WebRTC视频分辨率设置
前面我们能够打开摄像头.getUserMedia()时会传入参数,在参数里我们可以指定宽高信息.通过宽高参数控制输出的视频分辨率. html 在页面上摆放一些元素,下面是主要部分 <div id ...
- vbox下android分辨率设置
VBoxManage setextradata "android" "CustomVideoMode1" "1280x800x16" 1. ...
- Unity 开发游戏Game分辨率设置
最近自己开发小游戏,突然又被Game视图中设置分辨率被诱惑了, 我到底该怎么设置分辨率设置的图片才能让电脑和手机尺寸显示的大小一模一样呢? 然后又被手机尺寸和分辨率迷惑了! =.= 越搞越混 分辨 ...
- vmware下Ubuntu屏幕分辨率设置
1.查看现有设备 xrandr -q 输出如下: Screen 0: minimum 1 x 1, current 800 x 600, maximum 8192 x 8192 Virtual1 co ...
- Linux系统分辨率设置
linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下. 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System S ...
- 项目实战:Qt+Ffmpeg+OpenCV相机程序(打开摄像头、支持多种摄像头、分辨率调整、翻转、旋转、亮度调整、拍照、录像、回放图片、回放录像)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- mac用virtualbox 装win7联网及分辨率设置
1.关掉虚拟机,进入设置 2.选择网络->NAT方式->高级->控制芯片选择 1000MT 桌面,其他默认勾选 通过安装增强功能,可以随意改变分辨率,但是系统和远程连接后,东西都被缩 ...
- centos6分辨率设置
问题描述 centos 6.9最小化安装后, 分辨率会很大, 当然也可以最小化VM虚拟机, 但是有强迫症的朋友可以设置一下. 解决方法 打开/etc/grub.conf配置文件, 在kernel 的最 ...
随机推荐
- tensorflow中的学习率调整策略
通常为了模型能更好的收敛,随着训练的进行,希望能够减小学习率,以使得模型能够更好地收敛,找到loss最低的那个点. tensorflow中提供了多种学习率的调整方式.在https://www.tens ...
- js 把数组中每个元素的某个字段取出
方法一:map() let cities = [ {city:"北京",bOn:false}, {city:"上海",bOn:false}, {city:&qu ...
- opencv 4 图像处理(2 形态学滤波:腐蚀与膨胀,开运算、闭运算、形态学梯度、顶帽、黑帽)
腐蚀与膨胀 膨胀(求局部最大值)(dilate函数) #include <opencv2/core/core.hpp> #include <opencv2/highgui/highg ...
- 超速入门AT指令集 | 我的物联网成长记
[摘要] 在物联网中,AT命令集可用于控制&调测设备.通信模块入网等.本文为您介绍NB-IoT常用的AT命令集及其调测工具. 什么是AT指令集 AT命令,用来控制TE(Terminal Equ ...
- 【2018寒假集训 Day1】【位运算】翻转游戏
翻转游戏(flip) [问题描述] 翻转游戏是在一个 4 格×4 格的长方形上进行的,在长方形的 16 个格上每 个格子都放着一个双面的物件.每个物件的两个面,一面是白色,另一面是黑色, 每个物件要么 ...
- /etc/security/limits.conf 详解与配置
目录 一. /etc/security/limits.conf 详解 /etc/security/limits.conf 配置解析 /etc/security/limits.d/ 目录 二. ulim ...
- 小白学 Python 爬虫(10):Session 和 Cookies
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- java学习引言
Java学习之路:不走弯路,就是捷径 0.引言 软件开发之路是充满荆棘与挑战之路,也是充满希望之路.Java学习也是如此,没有捷径可走.梦想像<天龙八部>中虚竹一样被无崖子醍醐灌顶而轻松获 ...
- CentOS 7 安装 dnsmasq 服务 实现内网DNS
目录 安装 配置 服务管理 测试解析 安装 废话不多述,上来就安装 yum install -y bind-utils dnsmasq 配置 [root@jenkins ~]# rpm -ql dns ...
- WebGL简易教程(十四):阴影
目录 1. 概述 2. 示例 2.1. 着色器部分 2.1.1. 帧缓存着色器 2.1.2. 颜色缓存着色器 2.2. 绘制部分 2.2.1. 整体结构 2.2.2. 具体改动 3. 结果 4. 参考 ...