首页 > 其他分享 >基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验

时间:2024-01-31 10:02:30浏览次数:23  
标签:TIC6000 基于 教学实验 OV2640 接口 边缘 图像 摄像头 VPIF

一、实验目的

学习边缘检测的原理,掌握OV2640 摄像头和VPIF总线的工作原理,实现OV2640 摄像头采集图像并进行实时图像边缘检测,并显示在 LCD 上。

二、实验原理

OV2640摄像头

OV2640 是世界上第一个 1/4 英寸 2 百万像素视频传感器,同时是 OmniVision 最新的

2.2 微米 OmniPixel2™架构的视频传感器,可支持 200 万像素,分辨率可高达 1600x1200,

帧率可达 30 帧/秒,最高帧率可达 60 帧/秒。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_函数库

OV2640摄像头采集图像时,会先经过感光元件,采样的信号经过运放,再进行AD转换,AD量化之后得到数字化的视频信号会进行控制调整,最终通过视频输出接口输出。

除此之外还有其他的一些信号接口,比如时钟输入,像素时钟,行同步信号,帧同步信号,时序产生和逻辑控制单元等等。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_灰度_02

OV2640时序

图像数据在HREF为高的时候输出,当HREF变高后,每一个PCLK时钟,输出一个字节数据。比如我们采用UXGA时序,RGB565格式输出,每2个字节组成一个像素的颜色(低字节在前,高字节在后),这样每行输出总共有16002个PCLK周期,输出16002个字节。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_函数库_03

当HREF输出高电平时开始读取一行像素点,当低电平时不操作,重复操作即可读取一帧图像。OV2640支持:RGB565或JPEG输出。RGB565输出时,时序如图所示。JPEG输出时,PCLK大大减少,且HREF不连续,数据流以0XFF,0XD8开头,以0XFF,0XD9结束。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_边缘检测_04

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_灰度_05

VPIF接口

VPIF是一种视频接口。VPIF的通道0和通道1只能用于接收数据,通道2和通道3只能用于发送数据。更多的接口说明可以自行查看相关手册。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_边缘检测_06

VPIF 传输协议

VPIF 接口主要支持三种协议的传输:BT-656、BT-1120和Raw Capture mode

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_灰度_07

其中,VPIF 端口接收通道支持BT-656、BT-1120和Raw Capture mode三种协议,

VPIF 端口发送通道只支持BT-656

和BT-1120两种协议。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_灰度_08

VPIF 支持格式

VPIF 支持三种格式:

NTSC(高清或者标清)

PAL(高清或标清)

普通图像格式(1080-30p)

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_函数库_09

边缘检测

在数字图像中,边缘是指图像局部变化最显著的部分,边缘主要存在于目标与目标,目标与背景之间,是图像局部特性的不连续性,如灰度的突变、纹理结构的图标、颜色的图标等。尽管图像的边缘点产生的原因各不相同,但他们都是图形上灰度不连续或灰度急剧变化的点,图像边缘分为阶跃状、斜坡状和屋顶状。

边缘其实就是图像上灰度级变化很快的点的集合。计算的方法是通过导数和微分的方式。

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上。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_边缘检测_10

三、操作现象

实验设备

本实验使用的硬件接口为LCD和VPIF 接口,所需硬件为实验板、仿真器、TL2640I 摄像头模块、LCD和电源。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_灰度_11

硬件连接

(1)将 TL2640I 摄像头模块连接到实验板的 VPIF 接口。

(2)连接仿真器和电脑的USB接口,

(3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_边缘检测_12

软件操作

导入工程,选择Demo文件夹下的对应工程

编译工程

将CCS连接实验箱并加载程序

点击运行程序

在LCD屏幕上实时显示采集并做了边缘检测处理的图像

实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_边缘检测_13

基于TIC6000的教学实验箱的嵌入式操作教程:7-3 基于CMOS数字摄像头的边缘检测实验_函数库_14

标签:TIC6000,基于,教学实验,OV2640,接口,边缘,图像,摄像头,VPIF
From: https://blog.51cto.com/u_16123606/9502199

相关文章

  • Spring 事务管理 基于配置文件
    事务概念:原子性:要么都成功,有一个失败都失败一致性:总量不变(A有100元,B有100元,总量是200元。A把100元转给B,B就有了200元,总量还是200元)隔离性:两人操作同一条数据,不会相互影响持久性:最终提交到数据库后成功搭建事务操作环境进行操作():银行转账例子:1.1、创建数据库,创建表,添加......
  • 基于fx构建大型golang应用
    基于FX构建大型Golang应用原创 俞凡DeepNoMind DeepNoMind 2023-12-2313:29 发表于上海 1人听过Uber开源的FX可以帮助Go应用解耦依赖,实现更好的代码复用。原文: HowtobuildlargeGolangapplicationsusingFX[1]构建复杂的Go应用程序可能会引入很多耦合Go......
  • SciTech-CG-Graphics-Chart-CodeGenerator-PyQtGraph: 基于PyQt的图形绘制以及应用库
    UMLclassdiagram:https://pyqtgraph.readthedocs.io/en/latest/api_reference/uml_overview.htmlFlowChart:https://pyqtgraph.readthedocs.io/en/latest/api_reference/flowchart/index.htmlTheStateMachineFramework¶:https://doc.qt.io/qtforpython-5/overviews/......
  • Android开发笔记[8]-基于Compose布局的开屏页
    摘要基于Compose布局的开屏页,显示进度条;自动跳转到其他页面.关键信息AndroidStudio:ElectricEel|2022.1.1Patch2Gradle:distributionUrl=https://services.gradle.org/distributions/gradle-7.5-bin.zipjvmTarget='1.8'minSdk21targetSdk33compileSdk33开......
  • 窥探向量乘矩阵的存内计算原理—基于向量乘矩阵的存内计算
    原文:窥探向量乘矩阵的存内计算原理—基于向量乘矩阵的存内计算-CSDN博客CSDN-一见已难忘在当今计算领域中,存内计算技术凭借其出色的向量乘矩阵操作效能引起了广泛关注。本文将深入研究基于向量乘矩阵的存内计算原理,并探讨几个引人注目的代表性工作,如DPE、ISAAC、PRIME等,它们在神经......
  • Python中HTTPException(基于werkzeug.exceptions包)
    当我们在开发HTTP服务时(接口服务),由于很多从内部引发的Python异常,会触发标准HTTP非200响应的视图。为了让前端有着更好的视图体验(如果因为内部异常,会返回给前端/调用方更好的一个页面/返回)。对于我们来说,给予调用方一个固定的返回格式时非常重要的(因此通过HTTPException......
  • 基于lede开发自己的路由器系统openWrt
    搭建linux环境教程载这里,点击查看安装编译依赖更新软件包sudoaptupdate-y可能会存在如下报错:dsh@debian:~$sudoaptupdate-y忽略:1cdrom://[DebianGNU/Linux12.4.0_Bookworm_-Officialamd64DVDBinary-1withfirmware20231210-17:57]bookwormInRelease......
  • 经纬恒润基于INTEWORK-TAE的轻量级座舱测试解决方案
        经纬恒润基于ADB、总线接口卡搭配自动化测试软件INTEWORK-TAE,推出了桌面级座舱测试解决方案,助力智能座舱测试快速落地。 ......
  • Java实现基于清除后分配规则的垃圾回收器及其实现原理
    (Java实现基于清除后分配规则的垃圾回收器及其实现原理)实现基于清除后分配(mark-and-sweep)规则的垃圾回收器,可以按照以下步骤进行1.标记阶段(MarkingPhase)从根对象(如堆栈、全局变量)开始,递归地遍历所有可达的对象,并将其标记为活动对象,即不被回收的对象。这一过程可以使用深度优......
  • 基于注意力机制与改进TF-IDF的推荐算法
    前言本篇文章是2020年8月发表于《计算机工程》的一篇期刊论文,文章名称《基于注意力机制与改进TF-IDF的推荐算法》。文章针对传统推荐系统主要依赖用户对物品的评分数据而无法学习到用户和项目的深层次特征的问题,提出基于注意力机制与改进TF-IDF的推荐算法(AMITI)。将双层注意力......