My title page contents

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

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

软件:Quartus

语言:Verilog

代码功能:

本实验将在例程“OV5640 摄像头显示例程”的基础上实现彩色图像转化成黑白的灰度视频,

就相当于把彩色图像转成单色的黑白图像。如图左边为彩色的图像,化后变成右边的黑白

图像。


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

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


设计文档:

彩色视频图像转黑白(OV5640 摄像头).docx

彩色视频图像转黑白例程



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的 次方),计算完成以后再除以 256 即可,在硬件设计中,这些乘法和除

法通过移位就可以完成


本实验还设计到一个知点就是流水线处理,为提高性能,降低组合逻复杂程度,将一

个复杂的运算分布到多时钟周期,本实验中 rgb_to_ycbcr 模块一共使用 4 个时钟周期完成转换。


信号名称

方向

说明

clk

in

时钟输入

rst

in

异步复位输入,高复位

rgb_r

in

RGB 数据输入,红色分量

rgb_g

in

RGB 数据输入,绿色分量

rgb_b

in

RGB 数据输入,蓝色分量

4


rgb_hs

in

RGB 数据行同步输入

rgb_vs

in

RGB 数据场同步输入

rgb_de

in

RGB 数据数据有效指示

ycbcr_y

out

YCbC输出 Y 亮度

ycbcr_cb

out

YCbC输出 Cb 色度

ycbcr_cr

out

YCbC输出 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
//*******************************************************************************/

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 彩色视频图像转黑白(OV5640 摄像头)设计Verilog代码Quartus AX301开发板

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员