一、实验目的
学习边缘检测的原理,掌握OV2640 摄像头和VPIF总线的工作原理,实现OV2640 摄像头采集图像并进行实时图像边缘检测,并显示在 LCD 上。
二、实验原理
OV2640摄像头
OV2640 是世界上第一个 1/4 英寸 2 百万像素视频传感器,同时是 OmniVision 最新的
2.2 微米 OmniPixel2™架构的视频传感器,可支持 200 万像素,分辨率可高达 1600x1200,
帧率可达 30 帧/秒,最高帧率可达 60 帧/秒。
OV2640摄像头采集图像时,会先经过感光元件,采样的信号经过运放,再进行AD转换,AD量化之后得到数字化的视频信号会进行控制调整,最终通过视频输出接口输出。
除此之外还有其他的一些信号接口,比如时钟输入,像素时钟,行同步信号,帧同步信号,时序产生和逻辑控制单元等等。
OV2640时序
图像数据在HREF为高的时候输出,当HREF变高后,每一个PCLK时钟,输出一个字节数据。比如我们采用UXGA时序,RGB565格式输出,每2个字节组成一个像素的颜色(低字节在前,高字节在后),这样每行输出总共有16002个PCLK周期,输出16002个字节。
当HREF输出高电平时开始读取一行像素点,当低电平时不操作,重复操作即可读取一帧图像。OV2640支持:RGB565或JPEG输出。RGB565输出时,时序如图所示。JPEG输出时,PCLK大大减少,且HREF不连续,数据流以0XFF,0XD8开头,以0XFF,0XD9结束。
VPIF接口
VPIF是一种视频接口。VPIF的通道0和通道1只能用于接收数据,通道2和通道3只能用于发送数据。更多的接口说明可以自行查看相关手册。
VPIF 传输协议
VPIF 接口主要支持三种协议的传输:BT-656、BT-1120和Raw Capture mode
其中,VPIF 端口接收通道支持BT-656、BT-1120和Raw Capture mode三种协议,
VPIF 端口发送通道只支持BT-656
和BT-1120两种协议。
VPIF 支持格式
VPIF 支持三种格式:
NTSC(高清或者标清)
PAL(高清或标清)
普通图像格式(1080-30p)
边缘检测
在数字图像中,边缘是指图像局部变化最显著的部分,边缘主要存在于目标与目标,目标与背景之间,是图像局部特性的不连续性,如灰度的突变、纹理结构的图标、颜色的图标等。尽管图像的边缘点产生的原因各不相同,但他们都是图形上灰度不连续或灰度急剧变化的点,图像边缘分为阶跃状、斜坡状和屋顶状。
边缘其实就是图像上灰度级变化很快的点的集合。计算的方法是通过导数和微分的方式。
Canny 边缘检测
Canny 边缘检测算子是一个多级边缘检测算法,Canny 的目标是找到一个最优的边缘检测算法。
(1)应用高斯滤波来平滑图像,目的是去除噪声;
(2)找寻图像的强度梯度(intensity gradients);
(3)应用非最大抑制(non-maximum suppression)技术来消除边误检;
(4)应用双阈值的方法来决定可能的(潜在的)边界;
例如,双阈值t1和t2(t1≦t2),则大于t2的点肯定是边缘,小于t1的点肯定不是边缘。t1和t2之间的点,通过已经确定的边缘点,发起搜索,可到达的点是边缘,不可到达的点不是边缘。
(5)利用滞后技术来跟踪边界。
OpenCV
OpenCV 是一个基于 C/C++语言的开源图像处理函数库。
代码都经过优化,可用于实时处理图像
具有良好的可移植性
可以进行图像/视频载入、保存和采集的常规操作
具有低级和高级的应用程序接口(API)
提供了面向 Intel IPP 高效多媒体函数库的接口,可针对使用的 Intel CPU 优化代码,提高程序性能
OpenCV模块
OpenCV模块功能包括图像数据操作、图像/视频的输入输出、基本图像处理(去噪、边缘检测、角点检测、采样与插值、色彩变换、形态学处理、直方图、图像金字塔结构)等 。
cv – 核心函数库
cvaux – 辅助函数库
cxcore – 数据结构与线性代数库
highgui – GUI 函数库
ml – 机器学习函数库
程序流程设计:
程序流程设计中首先要使能缓存,接着进行DSP中断初始化和LCD的初始化,然后初始化配置I2C和OV2640摄像头,初始化VPIF总线。最后摄像头采集接收数据,灰度转换后进行图像边缘检测处理,并将数据显示在LCD上。
三、操作现象
实验设备
本实验使用的硬件接口为LCD和VPIF 接口,所需硬件为实验板、仿真器、TL2640I 摄像头模块、LCD和电源。
硬件连接
(1)将 TL2640I 摄像头模块连接到实验板的 VPIF 接口。
(2)连接仿真器和电脑的USB接口,
(3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程
将CCS连接实验箱并加载程序
点击运行程序
在LCD屏幕上实时显示采集并做了边缘检测处理的图像
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。