OV7670摄像头 入门基础知识

合集下载

OV7670带FIFO的CMOS摄像头使用说明

OV7670带FIFO的CMOS摄像头使用说明

OV7670带FIFO的CMOS摄像头使用说明OV7670是一款带有FIFO的CMOS摄像头芯片,广泛应用于各种嵌入式系统中。

它具有低功耗、高灵敏度和高图像质量等特点,适合于图像采集和处理应用。

以下是OV7670带FIFO的CMOS摄像头的使用说明。

一、硬件连接1.连接供电:将模块的VCC引脚连接到3.3V的电源,GND引脚连接到地。

2.数据传输:-使用I2C协议进行配置:将模块的SDA引脚连接到主控芯片的SDA 引脚,SCL引脚连接到主控芯片的SCL引脚。

-使用FIFO模式进行数据传输:将模块的FIFO_WR引脚连接到主控芯片的写使能引脚,FIFO_RD引脚连接到主控芯片的读使能引脚,FIFO_WE 引脚连接到主控芯片的写时钟引脚,FIFO_OE引脚连接到主控芯片的读时钟引脚,FIFO_RST引脚连接到主控芯片的复位引脚,DATA引脚连接到主控芯片的数据引脚。

二、软件配置1.I2C配置:通过I2C协议对OV7670进行配置。

首先初始化I2C总线,然后发送配置指令给OV7670的I2C地址,通过写入特定的寄存器来配置图像参数,如分辨率、亮度、对比度等。

2.FIFO配置:通过FIFO模式进行数据传输。

首先对OV7670进行FIFO模式的配置,设置FIFO的像素格式、帧率等参数。

然后初始化主控芯片的访问FIFO的接口,设置读写使能信号并根据需要配置写时钟和读时钟。

最后,在读取FIFO数据之前,先进行FIFO的复位以确保数据的正确读取。

三、数据采集和处理1.数据采集:通过FIFO模式进行数据采集,将摄像头拍摄到的图像数据存储到FIFO缓存中。

2. 数据处理:从FIFO缓存中读取图像数据,并进行相关的图像处理操作,如图像解码、颜色空间转换、图像滤波等。

可以使用各种图像处理算法和库来实现不同的功能,如OpenCV等。

四、常见问题和解决方案1.图像质量问题:如果发现图像质量差,可以尝试调整摄像头的参数,如增加亮度、对比度等,或者使用图像后处理算法进行图像增强。

OV7670的SCCB波形记录

OV7670的SCCB波形记录

OV7670的SCCB波形记录OV7670是一种具有SCCB(Serial Camera Control Bus)接口的图像传感器。

SCCB是一种串行的、双向的、主从模式下的总线协议,用于控制和配置摄像头的相关参数。

本文将记录OV7670的SCCB波形,分析不同控制命令的传输过程。

OV7670的SCCB总线使用两条线进行传输,即SDA(Serial Data Line)和SCL(Serial Clock Line)。

SDA负责数据的传输,而SCL则提供时钟信号。

SCCB的通信过程包括起始条件、地址传输、数据传输和停止条件。

首先,我们记录起始条件的波形。

起始条件是指在传输数据之前首先发送一个低电平到高电平的跳变来表示传输开始。

在波形上可以看到SCL在高电平状态,而SDA发生从高电平到低电平的跳变。

这个跳变表示起始条件的建立。

接下来是地址传输的波形。

地址传输用于确定要访问的寄存器或摄像头的内存地址。

先发送设备地址,然后发送寄存器地址。

设备地址是通过SDA线传输的,而时钟信号由SCL提供。

通过观察SCL和SDA信号的变化,我们可以找到传输过程中的起始、终止和数据位。

然后是数据传输的波形。

数据传输用于读取或写入寄存器的内容。

在读取时,先发送设备地址和寄存器地址,然后摄像头返回数据。

在写入时,先发送设备地址和寄存器地址,然后发送要写入的数据。

我们可以通过观察SCL和SDA信号的变化来确定传输过程中的数据位。

最后是停止条件的波形。

停止条件是指在传输数据之后发送一个高电平到低电平的跳变来表示传输结束。

在波形上可以看到SCL在高电平状态,而SDA发生从低电平到高电平的跳变。

这个跳变表示停止条件的建立。

通过对OV7670的SCCB波形的记录和分析,我们可以了解SCCB协议的传输过程。

这对于理解OV7670的工作原理和调试可能的问题很有帮助。

而具体的SCCB波形记录由于篇幅限制无法在此详述,请参考相关的技术文档和资料。

OV7670 摄像头模块介绍

OV7670 摄像头模块介绍

OV7670 摄像头模块介绍OV7670 摄像头模块简介OV7670是OV(OmniVision)公司生产的一颗1/6寸的CMOS VGA 图像传感器。

该传感器体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。

通过SCCB 总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影像数据。

该产品VGA图像最高达到30帧/秒。

用户可以完全控制图像质量、数据格式和传输方式。

所有图像处理功能过程包括伽玛曲线、白平衡、度、色度等都可以通过SCCB接口编程。

OmmiVision 图像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。

OV7670 摄像头模块特点1、高灵敏度、低电压适合嵌入式应用。

2、标准的SCCB接口,兼容IIC接口。

3、支持RawRGB、RGB(GBR4:2:2,RGB565/RGB555/RGB444),YUV(4:2:2)和YCbCr(4:2:2)输出格式。

4、支持VGA、CIF,和从CIF到40*30的各种尺寸输出。

5、支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹、自动黑电平校准等自动控制功能。

同时支持色饱和度、色相、伽马、锐度等设置。

6、支持闪光灯。

7、支持图像缩放。

OV7670 摄像头模块功能框图OV7670传感器包括如下一些功能模块。

1、感光整列(Image Array)OV7670总共有656*488个像素,其中640*480个有效(即有效像素为30W)。

2、时序发生器(Video Timing Generator)时序发生器具有的功能包括:整列控制和帧率发生(7种不同格式输出)、内部信号发生器和分布、帧率时序、自动曝光控制、输出外部时序(VSYNC、HREF/HSYNC和PCLK)。

3、模拟信号处理(Analog Processing)模拟信号处理所有模拟功能,并包括:自动增益(AGC)和自动白平衡(AWB)。

OV7670带FIFO的CMOS摄像头使用说明

OV7670带FIFO的CMOS摄像头使用说明

OV7670带FIFO的CMOS摄像头使用说明OV7670-CMOS摄像头使用说明2014.2.10 参赛平台1.OV7670带FIFO 模块1.简介:OV7670带FIFO 模块,是针对慢速的MCU 能够实现图像采集控制推出的带有缓冲存储空间的一种模块。

这种模块增加了一个FIFO (先进先出)存储芯片,同样包含30w 像素的CMOS 图像感光芯片,3.6mm 焦距的镜头和镜头座,板载CMOS 芯片所需要的各种不同电源(电源要求详见芯片的数据文件),板子同时引出控制管脚和数据管脚,方便操作和使用。

图1.OV7670带FIFO模块 2.管脚定义:参赛平台如图,控制传感器所需的管脚定义如下:3V3-----输入电源电压(推荐使用3.3,5V 也可,但不推荐)GDN-----接地点SIO_C---SCCB 接口的控制时钟(注意:部分低级单片机需要上拉控制,和I2C 接口类似)SIO_D---SCCB 接口的串行数据输入(出)端(注意:部分低级单片机需要上拉控制,和I2C 接口类似)VSYNC---帧同步信号(输出信号)HREF----行同步信号(输出信号)PCLK----像素时钟(输出信号)XCLCK---时钟信号(输入信号)D0-D7---数据端口(输出信号)RESTE---复位端口(正常使用拉高)PWDN----功耗选择模式(正常使用拉低)STROBE—拍照闪光控制端口(正常使用可以不需要)FIFO_RCK---FIFO 内存读取时钟控制端FIFO_WR_CTR----FIFO 写控制端(1为允许CMOS 写入到FIFO,0为禁止) FIFO_OE----FIFO 关断控制FIFO_WRST—FIFO 写指针服务端FIFO_RRST—FIFO 读指针复位端参赛平台图7.FIFO摄像头接口定义3.控制方式说明由于采用了FIFO 做为数据缓冲,数据采集大大简便,用户只需要关心是如何读取即可,不需要关心具体数据是如何采集到的,这样可减小甚至不用关心CMOS 的控制以及时序关系,就能够实现图像的采集。

OV7670摄像头彻底解读

OV7670摄像头彻底解读
(COM1=0x04;AECHH=0x07;AECH=0x10,COM8=0x13) 5) 外部时序输出(VSYNC,HREF/HSYNC,和 PCLK)
4 / 23
2013‐2‐21
[艾曼电子技术文档 HTTP:// ]
二、 OV7670 摄像头怎么用
1. 摄像头硬件电路
数据传输的终止
图 8 SCCB 终止信号 tPSC 是 SCCB——E 上升沿,SIO_D 保持逻辑高电平的时间,最小为 15ns; tPSA 是 SIO_D 上升沿,SCCB_E 必须保持低电平的时间,最小为 0ns。
2.3 SCCB 写时序
写时序由 3 相构成。先写设备地址,再写寄存器地址,最后写寄存器的值,即 ID‐Address + SUB‐Address + W‐Data。OV7670 的设备地址为 0x42,最后一位用来判断读写,即读的时候为 0x43。
2 / 23
2013‐2‐21
[艾曼电子技术文档 HTTP:// ]
15
DVDD
Power
Power supply (VDD-C= 1.8 VDC + 10%) for digital output drive
16
HREF
Output
HREF output
Power Down Mode Selection - active high, internal
U1
A1 A2 A3 A4 A5 B1 B2 B3 B4 B5 C1 C2 D1 D2 E1 E2 E3 E4 E5 F1 F2 F3 F4 F5
AVDD SIO_D SIO_C D1 D3 PWDN VREF2 AGND D0 D2 DVDD VREF1 VSYNC HREF PCLK STROBE XCLK D7 D5 DOVDD RESET# DOGND D6 D4

基于FPGA的OV7670摄像头和液晶显示产品简介

基于FPGA的OV7670摄像头和液晶显示产品简介

基于FPGA的OV7670摄像头和液晶显示产品简介
一、总体介绍
该产品以ALTERA公司Cyclone II系列FPGA的EP2C8Q208C8N芯片为主控核心,通过在FPGA 外围扩展1片SDRAM、1片SRAM、1片Nor FLASH、1个SD卡座、一个OV7670摄像头模块、一块2.8寸TFT液晶显示屏等外围设备构成的图像采集、分析和存储系统。

在此硬件基础上,产品配套有以上外设的Verilog HDL或者NIOSII的驱动程序。

用户可以在此基础上开发设计基于FPGA硬件编码或者NIOSII的图像处理程序。

图1整体图片
二、产品硬件结构介绍
1.FPGA底板
图2FPGA底板正面
图2中,1为K4S641632,64M bit,2为EP2C8Q208C8N FPGA芯片,3为IS61LV25616A-10TI 512Kbyte的SRAM芯片,4为AM29LV320DB32Mbit芯片。

5为FPGA的AS模式编程接口,6为FPGA的JTAG模式编程接口。

图3FPGA底板反面
钟。

2.中间层扩展板
该板主要起转接作用,板子下面跟FPGA底板连接,上面跟液晶扩展板和摄像头模块连接。

3.液晶扩展板
该板带一块2.8寸TFT触摸液晶屏,带触摸屏AD转换芯片。

OV7670照相模组硬件应用指南1.01 OVT


O
V
Co
修改日期:2007-12-12 版本: 1.06
nf
OmniVision 公司机密
id e
nt
ia l
OV7670 照相模组硬件应用指南
Table of Contents
1. OV7670 模组参考设计................................................................................................................... 3 注:...................................................................................................................................................... 3 1.PWDN 和 RESET 不用时,应接地.................................................................................................3 2. OV7670 模组接口参考设计........................................................................................................... 4 2.1 引脚定义...............................................................................................................................

OV7670分辨率设置


0x18 HSTOP 输出格式-行频结束高八位(低三位在HREF[5:3])
0x19 VSTRT 输出格式-场频开始高八位(低二位在VREF[1:0])
0x1A VSTOP 输出格式-场频结束高八位(低二位在 VREF[3:2])
0x03 VREF 位[3:2]VREF 结束的低两位(高八位见VSTOP[7:0]
关于 OV7670 摄像头 的分辨率设置
最近一直在纠结如何把 OV7670 输出的 图片分辨率缩小,以减少数据量来适应数据的传输, 在网上看了好多也没有关于寄存器的具体设置,最终又读了几遍数据手册,加上网友们写的
帖子的启发,总结出如下结论,希望大家批评指正。
Ov7670 的寄存器中跟分辨率有关的寄存器主要是一下几个: 0x17 HSTART 输出格式-行频开始高八位(低三位在HREF[2:0])
u16 endx=(startx+width*2)%784; u16 endy=(starty+height*2); u8 x_reg, y_reg; u8 state,temp;
state = rdOV7670Reg(0x32, &; state = rdOV7670Reg(0x03, &y_reg ); y_reg &= 0xF0;
位[1:0]VREF 开始的低两位(高八位见 VSTOP[7:0]
0x32 HREF 读写HREF控制
位[5:3]:HREF结束的低3位(高8位在HSTOP)
位[2:0]:HREF 结束的低 3 位(高 8 位在 HSTOP)
网上给的一般的设置方式是这样的:QVGA RGB565 320*240
{0x32, 0x80},
再看 VGA 和 QVGA 的区别:

ov7670寄存器配置调试总结

废话后面说,先直接上OV7670寄存器的配置部分const uint8_t OV7670_Reg[][2]={//Frame Rate Adjustment for 24Mhz input clock//30fps PCLK=24MHz{0x11, 0x80},//软件应用手册上设置的是0x80,例程设置的是0x00{0x6b, 0x0a},//PLL控制,软件应用手册上设置的是0x0a,例程设置的是0x40,将PLL调高的话就会产生花屏{0x2a, 0x00},{0x2b, 0x00},{0x92, 0x00},{0x93, 0x00},{0x3b, 0x0a},//Output format{0x12, 0x14},//QVGA(320*240)、RGB//RGB555/565 option(must set COM7[2] = 1 and COM7[0] = 0){0x40, 0x10},//RGB565,effective only when RGB444[1] is low{0x8c, 0x00},//Special effects - 特效//normal{0x3a, 0x04},{0x67, 0xc0},{0x68, 0x80},//Mirror/VFlip Enable - 水平镜像/竖直翻转使能{0x1e, 0x37},//修改配置值将产生图像显示上下或左右颠倒//Banding Filter Setting for 24Mhz Input Clock - 条纹滤波器//30fps for 60Hz light frequency//{0x13, 0xe7},//banding filer enable//{0x9d, 0x98},//50Hz banding filer//{0x9e, 0x7f},//60Hz banding filer//{0xa5, 0x02},//3 step for 50Hz//{0xab, 0x03},//4 step for 60Hz//{0x3b, 0x02},//select 60Hz banding filer//Simple White Balance - 白平衡//{0x13, 0xe7},//AWB、AGC、AGC Enable and ...//{0x6f, 0x9f},//simple AWB//AWBC - 自动白平衡控制(Automatic white balance control)//{0x43, 0x14},//用户手册里这些寄存器的值都是保留(Reserved),不用设置的呀?//{0x44, 0xf0},//{0x45, 0x34},//{0x46, 0x58},//{0x47, 0x28},//{0x48, 0x3a},//AWB Control//{0x59, 0x88},//用户手册连寄存器都是保留,初始值都没提供//{0x5a, 0x88},//{0x5b, 0x44},//{0x5c, 0x67},//{0x5d, 0x49},//{0x5e, 0x0e},//AWB Control//{0x6c, 0x0a},//{0x6d, 0x55},//{0x6e, 0x11},//{0x6f, 0x9f},//AGC/AEC - Automatic Gain Control自动增益补偿/Automatic exposure Control自动曝光控制//{0x00, 0x00},//{0x14, 0x20},//{0x24, 0x75},//{0x25, 0x63},//{0x26, 0xA5},//AEC algorithm selection - AEC公式选择//{0xaa, 0x94},//基于平均值的AEC算法Average-based AEC algorithm/基于直方图的AEC算法Histogram-based AEC algorithm//基于直方图的AGC/AEC的控制//{0x9f, 0x78},//{0xa0, 0x68},//{0xa6, 0xdf},//{0xa7, 0xdf},//{0xa8, 0xf0},//{0xa9, 0x90},//Fix Gain Control - 固定增益控制//{0x69, 0x5d},//Fix gain for Gr channel/for Gb channel/for R channel/for B channel//Color saturation 颜色饱和度+ 0//{0x4f, 0x80},//{0x50, 0x80},//{0x51, 0x00},//{0x52, 0x22},//{0x53, 0x5e},//{0x54, 0x80},//{0x58, 0x9e},//Brightness - 亮度+ 0//{0x55, 0x00},//Contrast - 对比度+ 0//{0x56, 0x40},//Gamma Curve - 伽马曲线//{0x7a, 0x20},//{0x7b, 0x1c},//{0x7c, 0x28},//{0x7d, 0x3c},//{0x7e, 0x55},//{0x7f, 0x68},//{0x80, 0x76},//{0x81, 0x80},//{0x82, 0x88},//{0x83, 0x8f},//{0x84, 0x96},//{0x85, 0xa3},//{0x86, 0xaf},//{0x87, 0xc4},//{0x88, 0xd7},//{0x89, 0xe8},//Matrix Coefficient - 色彩矩阵系数//{0x4f, 0x80},//{0x50, 0x80},//{0x51, 0x00},//{0x52, 0x22},//{0x53, 0x5e},//{0x54, 0x80},//Lens Correction Option - 镜头补偿选项 //{0x62, 0x00},//{0x63, 0x00},//{0x64, 0x04},//{0x65, 0x20},//{0x66, 0x05},//{0x94, 0x04},//effective only when LCC5[2] is high//{0x95, 0x08},//effective only when LCC5[2] is high//注释这些配置的话,就倾斜显示,并显示多块,这到底是控制什么的?跟时序图有关?{0x17, 0x16},//行频Horizontal Frame开始高八位(低三位在HREF[2:0]){0x18, 0x04},//行频Horizontal Frame结束高八位(低三位在HREF[5:3]){0x19, 0x02},//场频Vertical Frame开始高八位(低二位在VREF[1:0]){0x1a, 0x7b},//场频Vertical Frame结束高八位(低二位在VREF[3:2]){0x32, 0x80},//HREF{0x03, 0x06},//VREF//注释这个配置的话,就显示花屏了{0x15, 0x02},//配置PCLK、HREF、VSYNC相关//Automatic black Level Compensation - 自动黑电平校正{0xb0, 0x84},//调试时注释这项配置时,颜色显示不正常了,红色练绿色,绿色变红色,但用户手册对这寄存器是保留RSVD//{0xb1, 0x0c},//{0xb2, 0x0e},//{0xb3, 0x82},//{0xb8, 0x0a},//SCALING_xx寄存器//{0x70, 0x00},//{0x71, 0x00},//{0x72, 0x11},//{0x73, 0x08},//{0x3e, 0x00},//ADC//{0x37, 0x1d},//ADC控制ADC Control//{0x38, 0x71},//ADC和模拟共模控制ADC and Analog Common Mode Control//{0x39, 0x2a},//ADC偏移控制ADC Offset Control//零杂的寄存器//{0x92, 0x00},//空行低八位Dummy Line low 8 bits//{0xa2, 0x02},//像素时钟延时//{0x0c, 0x0c},//{0x10, 0x00},//{0x0d, 0x01},//{0x0f, 0x4b},//{0x3c, 0x78},//{0x74, 0x19},//用户手册里这几个寄存器都是保留RSVD//{0x0e, 0x61},//{0x16, 0x02},//{0x21, 0x02},//{0x22, 0x91},//{0x29, 0x07},//{0x33, 0x0b},//{0x35, 0x0b},//{0x4d, 0x40},//{0x4e, 0x20},//{0x8d, 0x4f},//{0x8e, 0x00},//{0x8f, 0x00},//{0x90, 0x00},//{0x91, 0x00},//{0x96, 0x00},//{0x9a, 0x80},};刚开始学OV7670摄像头,我想大家跟我一样心里很毛躁吧,一个模块需要你配置100多个寄存器,但用户手册对寄存器的介绍却草草的一笔带过,自己无从下手啊,只能看开发板给的例程和上网找一些大虾的帖子了。

OV7670分辨率设置

//设置 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 ); }

0x18 HSTOP 输出格式-行频结束高八位(低三位在HREF[5:3])
0x19 VSTRT 输出格式-场频开始高八位(低二位在VREF[1:0])
0x1A VSTOP 输出格式-场频结束高八位(低二位在 VREF[3:2])
0x03 VREF 位[3:2]VREF 结束的低两位(高八位见VSTOP[7:0]
//设置 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 );
我们设置 OV7670_config_window(184,10,320,240)的图片如下:
我们设置 OV7670_config_window(184,10,160,120)的图片为: 同理设置 OV7670_config_window(184+160*2,10+120*2,160,120)的图片为: 微笑 smile 2012/08/16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

颜色空间
指不同波长的电磁波谱与不同物质相互作用所构成的色谱空间。

颜色空间也称色彩模型(又称彩色空间或彩色系统),它的用途是在某些标准下用通常可接受的方式对彩色加以说明。

色彩模型是描述使用一组值(通常使用三个、四个值或者颜色成分)表示颜色方法的抽象数学模型。

本质上,色彩模型是坐标系统和子空间的阐述。

通俗地说,自然界的多彩空间是复杂变换的,在不同的应用领域人们在这个复杂的色彩空间中采用的色彩范围或者说是选取的色彩范围有所不同或者是表述方法不同。

因此就出现了多种多样的空间色彩描述方法,即不同的颜色空间。

颜色空间有许多种,常用有RGB,CMY,YUV,HSV,HSI等。

RGB颜色空间
根据三基色原理,用基色光单位来表示光的量,则在RGB颜色空间,任意色光F都可以用R、G、B三色不同分量的相加混合而成:F=r [ R ] + g [ G ] + b [ B ]
RGB颜色空间还可以用一个三维的立方体来描述,如下图。

这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

实际应用中RGB存在系列标准。

RAW RGB
Sensor的感光原理是通过一个一个的感光点对光进行采样和量化,但,在Sensor中,每一个感光点只能感光RGB中的一种颜色。

所以,通常所说的30万像素或130万像素等,指的是有30万或130万个感光点。

每一个感光点只能感光一种颜色。

但是,要还原一个真正图像,需要每一个点都有RGB三种颜色,所以,对于CCIR601或656的格式,在Sensor模组的内部会有一个ISP 模块,会将Sensor采集到的数据进行插值和特效处理,例如:如果一个感光点感应的颜色是R,那么,ISP模块就会根据这个感光点周围的G、B感光点的数值来计算出此点的G、B值,那么,这一点的RGB值就被还原了,然后在编码成601或656的格式传送给Host。

而RAW RGB格式的Sensor则是将没个感光点感应到的RGB数值直接传送给Host,由Host来进行插值和特效处理。

CMY颜色空间
彩色印刷或彩色打印的纸张是不能发射光线的,因而印刷机或彩色打印机就只能使用一些能够吸收特定的光波而反射其他光波的油墨或颜料。

油墨或颜料的3基色是青(Cyan)、品红(Magenta)和黄(Yellow),简称为CMY。

青色对应蓝绿色,品红对应紫红色。

理论上说,任何一种由颜料表现的颜色都可以用这三种基色按不同的比例混合而成,这种颜色表示方法称CMY颜色空间表示法。

彩色打印机
和彩色印刷系统都采用CMY颜色空间。

用CMY模型产生的颜色被称为相减色,是因为它减少了为视觉系统识别颜色所需要的反射光。

在CMY相减混色中,三基色等量相减时得到黑色;等量黄色(Y)和品红(M)相减而青色(C)为0时,得到红色(R);等量青色(C)和品红(M)相减而黄色(Y)为0时,得到蓝色(B);等量黄色(Y)和青色(C)相减而品红(M)为0时,得到绿色(G)。

这些三基色相减结果如下图所示。

CMY空间正好与RGB空间互补,也即用白色减去RGB空间中的某一颜色值就等于同样颜色在CMY空间中的值。

RGB空间与CMY空间的互补关系如下表。

根据这个原理,很容易把RGB空间转换成CMY空间。

由于彩色墨
水和颜料的化学特性,用等量的CMY三基色得到的黑色不是真正的黑色,因此在印刷术中常加一种真正的黑色(black ink),所以CMY 又写成CMYK。

实际应用中,一幅图像在计算机中用RGB空间显示;用RGB或SHI空间编辑处理;打印输出时要转换成CMY空间;如果要印刷,则要转换成CMYK四幅印刷分色图,用于套印彩色印刷品。

YUV颜色空间
在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。

这种色彩的表示方法就是所谓的YUV 色彩空间表示。

采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。

色差信号,用基色信号减去亮度信号就得到色差信号。

例如蓝色差信号(B-Y)、红色差(R-Y)两个色差信号和一个亮度信号(Y)。

严格上讲,色差信号共有三个,即R-Y,B-Y,G-Y。

但只有两个是独立的,第三个可用另外两个求出。

由于对任何频率的颜色,绿色分量对亮度的贡献最大,因此G-Y的值相应地最小,显然,在信号传送过程中,传送一个小信号对改善信噪比不利,因此工业上选择色差值相对较大的B-Y,R-Y两个色差信号以及亮度信号作为传送信号。

一人眼颜色空间
我们见到的颜色,如苹果红色,其实都是在一定条件下才出现的色彩。

这些条件,主要可归纳为三项,就是光线、物体反射和眼睛。

光和色是并存的,没有光,就没有颜色,不同颜色的光就是不同波长的光。

可以说,色彩就是物体反射光线到我们眼内产生的知觉。

人的视网膜上有3种感光细胞,因其呈圆锥状而被叫做“锥体”(锥形细胞)。

这些锥体含有被称为“视物质”的色素,根据这些色素对光的吸收量的不同而决定了锥体对光的反应程度。

含有大量吸收短波谱光
线的视物质的锥体叫S锥体,而较多吸收中波、长波光线的锥体分别被称为M 锥体L锥体。

通过这些锥体的作用而使人眼对色彩产生感觉。

三种锥体之所以能感受多种光,是由于多种光的波长相对应的锥体的感光度即分光感光度区域相互重叠。

即是说,眼睛只需以不同强度和比例的红绿蓝三色组合起来,便能产生任何色彩的知觉,因而红绿蓝可说是人眼的三基色。

利用三基色色光的相加叠合,我们基本上能够模拟自然界中出现的各种色彩,这就是著名的光学三色原理。

以这种方法产生色彩亦叫做加法混色。

屏幕显像和摄影就是这种混色方法的具体应用。

人类视觉系统不是简单的RGB 传感器。

人眼对亮度最敏感,相同分辨率的显示屏,在人眼接受范围内,亮度越大人眼感觉越清晰。

人眼可见光波长。

数字摄像头成像原理
数字摄像头使用感光阵列转换光信号,感光阵列如下图。

感光阵列将摄像头透镜中传过来的光采集,转换形成数字信号。

感光阵列越密像素越大。

常见感光阵列有CCD、COMS。

就CCD和CMOS 而言:ADC的位置和数量是最大的不同。

CCD曝光结束后,进行电
信号转移,将每一行中每一个象元的电荷信号依行序依次传入每行的“缓冲器”中,由底端线路依次将每行的电信号引导输出至CCD旁的放大器进行放大,再串联ADC输出,此为线阵CCD;另外一种是每行均有放大电路,各行同时将捕捉的当前图像信息进行ADC,既可以同时接受一幅完整的图像信息,此为面阵CCD。

CMOS的设计中每个像素就直接连着ADC,电信号直接放大并转换成数字信号。

比较:CCD的特色在于充分保持信号在传输时不失真,透过每一个像素集合至单一放大器上再做统一处理,可以保持图像的完整性;CMOS的制程较简单,没有专属通道的设计,因此必须先行放大再整合各个像素的资料。

由此可见,CMOS的成像过程更加容易出现坏点,使图像失真,但随着他工艺的可兼容性和功耗,使得它更加适合嵌入式的需要,同时,产生的图像失真可以通过相应的算法进行补偿,但这里需要注意的是,CMOS的成像特点决定了它非常容易受到外界环境光的影响,在使用的过程中,一定要设计出符合要求的光源。

OV7670摄像头模块
带384Kb FIFO 数字摄像头手动变焦
OV7670总共有656*488个像素,其中640*480个有效(即有效像素为30W)。

支持RawRGB、RGB(GBR4:2:2,RGB565/RGB555/RGB444),YUV(4:2:2)和YCbCr(4:2:2)输出格式。

RGB565彩色模式,一个像素占两个字节
低字节的前5位用来表示B(BLUE)
低字节的后三位+高字节的前三位用来表示G(Green)
高字节的后5位用来表示R(RED)
VGA,即分辨率为640*480的输出模式。

VGA最早指的是显示器640X480这种显示模式。

QVGA,即分辨率为320*240的输出格式,也就是本文档我们需要用到的格式。

QVGA即"Quarter VGA"。

顾名思义即VGA的四分之一尺寸,亦即在液晶屏幕(LCD)上输出的分辨率是240×320像素。

QQVGA,即分辨率为160*120的输出格式。

相关文档
最新文档