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

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

10/09 15:00
497
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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
    下载

相关推荐