嵌入式操作教程:7-1 基于CMOS数字摄像头的灰度转换实验

一、实验目的

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

二、实验原理

OV2640摄像头

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

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

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

image.png

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

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

image.png

OV2640时序

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

image.png

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

image.png

TL2640摄像头模块和实验板的连接引脚对应表如表所示。DSP通过I2C总线配置摄像头的相关寄存器,摄像头采集的数据通过VPIF总线传输回DSP进行处理。

image.png

VPIF接口

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

image.png

VPIF 传输协议

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

image.png

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

和BT-1120两种协议。

image.png

image.png

VPIF 支持三种格式:NTSC、PAL和普通图像格式。

image.png

RGB24图像灰度转换

RGB颜色空间作为一种常用的彩色图像表示模型,分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。一般情况下,RGB彩色图像灰度化有三种转化方案:

(1)加权平均法

(2)平均值法:对彩色图像的每个像素中的R、G、B三个分量的值进行简单的算术平均,将得到的平均值作为灰度图像对应像素的亮度值。

(3)最大值法:将彩色图像的每个像素中的R、G、B三个分量中的最大值作为灰度图对应像素的灰度值。

所谓加权平均法就是根据三基色的重要性及其他指标,将R、G、B三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此我们可以按照下式对R、G、B三分量进行加权平均,则能得到较合理的灰度图像。

image.png

而实际应用时,希望避免低速的浮点运算,所以需要整数算法,由于系数都是3位精度的,可以将它们缩放1000倍来实现整数运算算法:

image.png

RGB一般是8位精度,现在缩放1000倍,所以上面的运算是32位整型的运算。后面那个除法是整数除法,所以需要加上500来实现四舍五入。

程序流程设计

程序流程设计中首先要使能缓存,接着进行DSP中断初始化和LCD的初始化,然后初始化配置I2C和OV2640摄像头,初始化VPIF总线。最后摄像头采集接收数据,灰度转换后将数据显示在LCD上。

image.png

三、操作现象

实验设备

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

image.png

硬件连接

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

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

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

image.png

软件操作

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

编译工程

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

点击运行程序

在LCD屏幕上实时显示采集并做了灰度转换处理的图像

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

image.png

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/333308.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SCSI/UFS储存架构/协议/电源管理/命令处理流程

UFS子系统架构 1.UFS协议 无论是ufs host controller部分还是ufs device部分,他们都将遵循统一的UFS规范 UFS Application Layer(UAP)应用层 1.UFS command set (UCS) UCS处理命令集,如读、写命令等,.使用的命令是简化的SCSI命令(…

【01】mapbox js api加载arcgis切片服务

需求: 第三方的mapbox js api加载arcgis切片服务,同时叠加在天地图上,天地图坐标系web墨卡托。 效果图: 形如这种地址去加载http://zjq2022.gis.com:8080/demo/loadmapboxtdt.html 思路: 需要制作一个和天地图比例…

2023年度因子大盘点

基本信息: 指标说明: 2023年市场表现最佳 2023年市场单项最佳 2023年各分域最佳因子

【昇思技术公开课笔记-大模型】Bert理论知识

NLP中的预训练模型 语言模型演变经历的几个阶段 word2vec/Glove将离散的文本数据转换为固定长度的静态词向量,后根据下游任务训练不同的语言模型ELMo预训练模型将文本数据结合上下文信息,转换为动态词向量,后根据下游任务训练不同的语言模…

从数据到决策:项目管理和度量领域必备技能

0、引言 “效率”作为得物技术部的关键词之一,大家在研发效能、会议效率、协作效率、办公效率等方面一直进行着持续地探索。在实际落地的过程中,为了更好地评估应用效果,往往需要将定性描述转换为可量化的数据指标。这些数据指标可以帮助我们…

【大咖云集】2024年机械应用与机器视觉研究国际会议(ICMAMVR 2024)

2024年机械应用与机器视觉研究国际会议(ICMAMVR 2024) 2024 International Conference on Mechanical Applications and Machine Vision Research 数据库:EI,CPCI,CNKI,Google Scholar等检索 一、【会议简介】 2024年机械应用与机器视觉研究国际会议(ICMAMVR 2024)将…

C和指针课后答案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 第八章课后答案 提示:以下是本篇文章正文内容,下面案例可供参…

C语言:预处理详解

创作不易,来个三连呗! 一、预定义符号 C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编…

python—01虚拟环境

文档结构 1、概念简介2、环境配置2.1、多版本解释器2.2、指令创建虚拟环境2.3、idea创建虚拟环境2.3.1、pycharm 1、概念简介 虚拟环境 在某些场景下,不同的项目需要基于不同版本的Python解释器来开发,或者不同的项目需要的第三方包或模块版本也不同。当…

【C语言编程之旅 5】刷题篇-if语句

第1题 解析 上述代码本来的想法应该是:循环10次,每次循环时如果i5则打印i的结果。 但if语句中表达式的写成了赋值,相当于每次循环尽量都是将i的值设置成了5,5为真,因此每次都会打印5 i每次修改成5打印后&#xff0c…

【面试突击】硬件级别可见性问题面试实战(上)

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复…

【LeetCode热题100】【子串】和为 K 的子数组

题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入:nums [1,…

DataSheet文件解读

DataSheet文件解读 IC介绍Features [特征]Typical Applications [典型应用]MARKING DIAGRAMS [标记图]![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/77041875f8f6435fa856a8f9aded6867.png)ORDERING INFORMATION 【订购信息】Figure1: Pin Diagram 【…

蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2)

目录 一、矩形总面积 思路: 代码: 二、错误票据 思路: 代码: 三、分糖果1 思路: 代码: 四、三国游戏 思路: 代码: 五、分糖果2 思路: 代码:…

ROS2机器人开发入门

ROS2学习 文章目录 ROS2学习ROS2对比ROS1的区别架构API编译系统OS 通讯节点模型进程安装命令 创建功能包 节点话题:节点间传输数据的桥梁发布者Publisher订阅者SubscriberROS2话题示例-发布图像话题ROS2话题示例-订阅图像话题usb相机的标准驱动 服务服务器端客户端 …

如何压缩视频到50m以内?这几个参数设置了吗?

在我们的日常生活中,视频文件经常占据较大的存储空间,给我们存储和传输带来了困扰,那么如何将视频文件压缩至50m以下呢?下面就为大家分享三个实用的方法,轻松解决视频过大问题。 方法一:调整视频分辨率 视…

亚马逊鲲鹏系统:强大防指纹技术引领全自动账号管理新时代

亚马逊作为全球最大的电商平台之一,一直都很受客户欢迎,而亚马逊鲲鹏系统的全新推出,旨在解决买家账号过多时的管理难题。据了解,这一系统不仅能够有效防止账号关联,而且在保障每个账号独立运行的同时,还拥…

JAVA——数据类型与运算符

数据类型 注意事项:1.初始化操作是可选的, 但是建议创建变量的时候都显式初始化. 2.最后不要忘记分号, 否则会编译失败. 3.初始化设定的值为 10L , 表示一个长整型的数字. 10l 也可以. 4.float 类型在 Java 中占四个字节, 遵守 IEEE 754 标准. 由于表示的数据精度范…

k8s的坑,从这里开始

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 以前刚接触k8s时踩了不少坑,比如这些: 问题1 1、在master节点使用kubectl命令时,报错&…

新手如何学习单片机入行?

新手如何学习单片机入行? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&…