• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

彩色视频图像转黑白(OV5640 摄像头)设计Verilog代码Quartus AX301开发板

3小时前
66
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-241112200AJW.docx

共1个文件

名称:彩色视频图像转黑白(OV5640 摄像头)设计Verilog代码Quartus? AX301开发板

软件:Quartus

语言:Verilog

代码功能:

本实验将在例程“OV5640?摄像头显示例程”的基础上实现彩色图像转化成黑白的灰度视频,就相当于把彩色图像转化成单色的黑白图像。如下图左边为彩色的图像,转化后变成右边的黑白图像。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在AX301开发板验证,AX301开发板如下,其他开发板可以修改管脚适配:

AX301开发板.png

设计文档:

彩色视频图像转黑白例程

1?实验简介

本实验将在例程“OV5640?摄像头显示例程”的基础上实现彩色图像转化成黑白的灰度视频,就相当于把彩色图像转化成单色的黑白图像。如下图左边为彩色的图像,转化后变成右边的黑白图像。

转换前

转换后

2?实验原理

在“OV5640 摄像头显示例程”中显示的视频图像是 RGB565 的 16 位色的彩色图像,我们这里需要把 RGB 的图像数据转换成 YCbCr 信号。关于 YCbCr 是什么?简单的说:"Y"表示明亮度(Lu Luma),也就是灰阶值;而"Cb"和"Cr"表示的则是色度(Chrominance 或 Chroma)。

在彩色转黑白图像中,我们需要的就是这个明亮度的值?Y,把颜色部分去掉,Y?值越大,颜色越白,Y?值越小,颜色越暗。如果输出的?RGB?的值都等于这个亮度?Y?的值,VGA?显示的图像就成了黑白图像。

那如何来产生这个 "亮度"Y 信号呢?"亮度"Y 是通过 RGB 输入信号来创建的,方法是将 RGB 信号的特定部分叠加到一起。"色度"则定义了颜色的两个方面-色调与饱和度,分别用?Cr?和?CB?来表示。其中,Cr 反映 RGB 输入信号红色部分与 RGB 信号亮度值之间的差异。而 CB 反映的是RGB 输入信号蓝色部分与 RGB 信号亮度值不同的差异。

通过运算,YUV 三分量可以还原出 R(红),G(绿),B(兰)。RGB?和?YUV?的转换公式如下:

Y = 0.183R + 0.614G + 0.062B + 16;

CB = -0.101R - 0.338G + 0.439B + 128;

CR = 0.439R - 0.399G - 0.040B + 128;

3?程序设计

本实验一个重点模块是?rgb_to_ycbcr,主要完成?RGB?到?YCbCr?的转换。按照公式,转换过程中有小数,这里转化为定点小数,转化原理非常简单,例如例程中使用?8bit?来表示小数部分,需要将小数乘?256(2?的?8?次方),计算完成以后再除以?256?即可,在硬件设计中,这些乘法和除法通过移位就可以完成。

本实验还设计到一个知识点就是流水线处理,为了提高性能,降低组合逻辑复杂程度,将一个复杂的运算分布到多个时钟周期,本实验中?rgb_to_ycbcr?模块一共使用?4?个时钟周期完成转换。

信号名称

方向

说明

clk

in

时钟输入

rst

in

异步复位输入,高复位

rgb_r

in

RGB?数据输入,红色分量

rgb_g

in

RGB?数据输入,绿色分量

rgb_b

in

RGB?数据输入,蓝色分量

rgb_hs

in

RGB?数据行同步输入

rgb_vs

in

RGB?数据场同步输入

rgb_de

in

RGB?数据数据有效指示

ycbcr_y

out

YCbCr?输出?Y?亮度

ycbcr_cb

out

YCbCr?输出?Cb?色度

ycbcr_cr

out

YCbCr?输出?Cr?色度

ycbcr_hs

out

YCbCr?输出行同步

ycbcr_vs

out

YCbCr?输出场同步

ycbcr_de

out

YCbCr?输出数据有效

rgb_to_ycbcr?模块端口

4?实验现象

(1)?将摄像头模块插入开发板,保证?1?脚对齐,1?脚在焊盘形状和其他引脚是有明显区别的,是方形的。

摄像头模块连接图

(2)?连接好?VGA?显示器

(3)?下载实验程序,可以看到黑白的视频输出。注意:ov5640?模块焦距是可调的,如?果焦距不合适,图像会模糊,旋转镜头,可以调节焦距。摄像头模块要轻拿轻放,不要?用手触摸元器件。

部分代码展示:

//////////////////////////////////////////////////////////////////////////////////
//??CMOS?sensor?8bit?data?is?converted?to?16bit?data????????????????????????????//
//??????????????????????????????????????????????????????????????????????????????//
//??Author:?meisq???????????????????????????????????????????????????????????????//
//??????????msq@qq.com??????????????????????????????????????????????????????????//
//??????????ALINX(shanghai)?Technology?Co.,Ltd??????????????????????????????????//
//??????????heijin??????????????????????????????????????????????????????????????//
//?????WEB:?http://www.alinx.cn/????????????????????????????????????????????????//
//?????BBS:?http://www.heijin.org/??????????????????????????????????????????????//
//??????????????????????????????????????????????????????????????????????????????//
//////////////////////////////////////////////////////////////////////////////////
//??????????????????????????????????????????????????????????????????????????????//
//?Copyright?(c)?2017,ALINX(shanghai)?Technology?Co.,Ltd????????????????????????//
//????????????????????All?rights?reserved???????????????????????????????????????//
//??????????????????????????????????????????????????????????????????????????????//
//?This?source?file?may?be?used?and?distributed?without?restriction?provided????//
//?that?this?copyright?statement?is?not?removed?from?the?file?and?that?any??????//
//?derivative?work?contains?the?original?copyright?notice?and?the?associated????//
//?disclaimer.??????????????????????????????????????????????????????????????????//
//??????????????????????????????????????????????????????????????????????????????//
//////////////////////////////////////////////////////////////////////////////////
//================================================================================
//??Revision?History:
//??Date??????????By????????????Revision????Change?Description
//--------------------------------------------------------------------------------
//??2017/7/19?????meisq??????????1.0?????????Original
//*******************************************************************************/

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1356

  • 2-241112200AJW.docx
    下载

相关推荐