FPGA数字图像处理基础:色彩空间转换(Verilog)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FPGA数字图像处理基础:色彩空间转换
(Verilog)
01图像色彩空间概述
色彩本质上是不同频率的光,人眼对于不同频率光线的不同感受产生主观感知,从而得以区分不同的颜色。

尽管从客观上而言,色彩仅仅是不同频率的光,但从视觉角度而言,不同颜色的认知难度很大,因此引入色彩空间(Color Space)以便图像色彩的深入研究。

常见的色彩空间主要有:RGB、YUV(YCbCr)、Lab、HSV和CMY(CMYK)等。

1.1 RGB空间
RGB空间是基于人眼识别的颜色所定义的色彩空间,以红(R,Red)、绿(G,Green)、蓝(B,Blue)三种基本色为基础进行不同程度的叠加而成。

红、绿、蓝作为三原色按亮度分别划分为256个等级,从而可以表示一千六百多万种不同的颜色,且每种颜色是唯一的。

RGB色彩空间的丰富性使其成为数字图像处理与显示的重要格式。

通常可将RGB色彩空间模型建立在笛卡尔坐标系中,采用空间坐标的形式表示出超过人眼分辨程度数量的颜色信息。

3.2 RGB生成灰度图像Verilog代码
本节分析基于FPGA实现RGB生成灰度图算法,在Vivado和
Matlab联合仿真的基础上,对Verilog转换实现结果在Matlab中展示,验证代码的可行性。

3.2.1 预处理操作
类似于RGB转为YCbCr,由RGB生成灰度图中同样存在小数乘法与加法运算,FPGA不擅长小数处理,因此采用扩大2^n倍后向右移n位进行实现,具体实现方法如下:
RGB生成灰度图算法:
Gray = 0.299*R + 0.587*G + 0.114*B
将方程扩大256倍后右移8位,算法依然等价:
Gray= 256*(0.299*R + 0.587*G + 0.114*B)>>8
算法推导得:
Gray= (77*R + 150*G + 29*B)>>8
算法转化为FPGA擅长的乘法与移位运算。

3.2.2 Verilog代码
基于Matlab与Verilog联合仿真工程,添加格式转换模块cx_RGB_gray构建顶层top模块,对top进行仿真。

相关文档
最新文档