将彩色图像转化为灰度的情势有两种,将彩色图像转化为灰度的方法有二种

         我们好,给我们介绍一下,这是依据FPGA的肤色识别算法实现。

         我们好,给我们介绍一下,这是遵照FPGA的肤色识别算法实现。

       
 后边大家讲了按照FPGA用VGA呈现一副静态图片,那么接下去我们就跟着前边的工程来落实我们图像处理的基本功算法里最简单易行的一个那就是彩色图像转灰度的实现。

        
我们先天这篇文章有三个内容一是促成基于FPGA的彩色图片转灰度实现,然后在那么些基础上落实基于FPGA的肤色检测算法实现。

        
我们明日这篇著作有三个内容一是兑现基于FPGA的彩色图片转灰度实现,然后在这一个基础上实现基于FPGA的肤色检测算法实现。

将彩色图像转化为灰度的法门有二种,一个是令RGB五个轻重的数值相等,输出后便得以取得灰度图像,另一种是转账为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度和浓度所以只输出Y分量,得到的图像就是灰度图像了。我在此处接纳第二种办法实现。

将彩色图像转化为灰度的章程有二种,一个是令RGB四个轻重的数值相等,输出后便得以赢得灰度图像,另一种是转账为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度和浓度所以只输出Y分量,拿到的图像就是灰度图像了。我在这边采取第二种办法实现。

将彩色图像转化为灰度的艺术有二种,一个是令RGB五个轻重的数值相等,输出后便得以取得灰度图像,另一种是转账为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度和浓度所以只输出Y分量,拿到的图像就是灰度图像了。我在此间采纳第二种办法实现。

YCBCr是透过有序的三元组来表示的,三元由Y(Luminance)、Cb(Chrominance-Blue)和Cr(Chrominance-Red)组成,其中Y表示颜色的明亮度和浓度,而Cb和Cr则分级代表颜色的黄色浓度偏移量和青色浓度偏移量。人的肉眼对由YCbCr色彩空间编码的录像中的Y分量更灵敏,而Cb和Cr的轻微变化不会引起视觉上的不同,按照该原理,通过对Cb和Cr举行子采样来减小图像的数据量,使得图像对存储需求和传导带宽的要求大大降低,从而达到在做到图像压缩的还要也确保了视觉上几乎从未损失的效率,进而使得图像的传输速度更快,存储更加有益。我们要的到灰度图像,首先要将征集到的彩色图像转化为YCbCr。

YCBCr是透过有序的三元组来代表的,三元由Y(Luminance)、Cb(Chrominance-Blue)和Cr(Chrominance-Red)组成,其中Y表示颜色的明亮度和浓度,而Cb和Cr则分级表示颜色的灰色浓度偏移量和灰色浓度偏移量。人的肉眼对由YCbCr色彩空间编码的视频中的Y分量更灵敏,而Cb和Cr的细小转移不会滋生视觉上的例外,遵照该原理,通过对Cb和Cr举行子采样来减小图像的数据量,使得图像对存储需求和传导带宽的要求大大降低,从而达到在形成图像压缩的还要也确保了视觉上几乎从未损失的效能,进而使得图像的传输速度更快,存储更加便宜。大家要的到灰度图像,首先要将收集到的彩色图像转化为YCbCr。

YCBCr是透过有序的三元组来代表的,三元由Y(Luminance)、Cb(Chrominance-Blue)和Cr(Chrominance-Red)组成,其中Y表示颜色的明亮度和浓度,而Cb和Cr则分级代表颜色的青色浓度偏移量和红色浓度偏移量。人的眸子对由YCbCr色彩空间编码的录像中的Y分量更灵敏,而Cb和Cr的一线转移不会挑起视觉上的不等,依照该原理,通过对Cb和Cr举行子采样来减小图像的数据量,使得图像对存储需求和传导带宽的要求大大降低,从而达到在成功图像压缩的还要也确保了视觉上几乎从未损失的功效,进而使得图像的传输速度更快,存储更加有利。我们要的到灰度图像,首先要将收集到的彩色图像转化为YCbCr。

        
我们安排视频头采集到的数量是RGB565的格式,官方给出的转发公式是RGB888->YCbCr,所以先需要将RGB565转化为RGB888,转化方法如下:

         我透过串口发送的彩色图片数据是RGB332
8bit,依据官方给出的中转公式是RGB888->YCbCr,所以自己先是要将8bit
RGB332转折为24bit
RGB888。转化如下,这里运用了循环补偿的定义。图片 1

         我透过串口发送的彩色图片数据是RGB332
8bit,遵照官方给出的倒车公式是RGB888->YCbCr,所以自己第一要将8bit
RGB332转折为24bit
RGB888。转化如下,这里运用了循环补偿的定义。图片 2

24bit RGB888 -> 16bit RGB565 的转换(只取高位)

从如上转账能够看看,B分量举办了四轮补偿。举办这样的增补,在做色彩格式转化的时候,可以明显的立异色彩效果,缩小精度上的损失。代码实现部分如下。图片 3

从如上转账可以见见,B分量举办了四轮补偿。举办这样的补充,在做色彩格式转化的时候,可以明确的精益求精色彩效果,缩小精度上的损失。代码实现部分如下。图片 4

24ibt RGB888 {R7 R6 R5 R4 R3 R2 R1 R0} {G7 G6 G5 G4 G3 G2 G1 G0} {B7 B6
B5 B4 B3 B2 B1 B0}

下面是合法给的RGB888 to
YCbCr的算法公式,我们可以直接把算法移植到FPGA上,可是大家都明白FPGA不能展开浮点运算,所以我们使用将所有式子右端先都扩展256倍,然后再右移8位,这样就收获了FPGA擅长的乘法运算和加法运算了。

下边是法定给的RGB888 to
YCbCr的算法公式,我们可以平素把算法移植到FPGA上,不过我们都通晓FPGA不可能开展浮点运算,所以我们选拔将全部式子右端先都扩张256倍,然后再右移8位,这样就得到了FPGA擅长的乘法运算和加法运算了。

16bit RGB656 {R7 R6 R5 R4 R3} {G7 G6 G5 G4 G3 G2} {B7 B6 B5 B4 B3}

图片 5 

图片 6 

如出一辙也得以恢复生机回去。

本条统计式子看起来是特别简短的,不过假设直接用Verilog直接写出来,那么只好说,这厮的代码写的一塌糊涂,所以这边就引出FPGA中流水线的计划性思想。

本条总括式子看起来是非凡简单的,不过假使一贯用Verilog直接写出来,那么只好说,这厮的代码写的一塌糊涂,所以这边就引出FPGA中流水线的计划思想。

16bit RGB565 -> 24bit RGB888 的变换(高位补低位)

        
在这里我们挑选加3级流水线,就率先个Y分量而言,先统计括号中得乘法运算,消耗一个时钟,然后将括号中的数据求和,消耗一个时钟,那里为了总结方便,将128也壮大256倍,放到括号中,最后结果除以256就行了也就是右移8位,在FPGA中大家只需要放弃低8位取高8位就行。

        
在此间我们挑选加3级流水线,就率先个Y分量而言,先总结括号中得乘法运算,消耗一个时钟,然后将括号中的数据求和,消耗一个时钟,这里为了总括方便,将128也扩张256倍,放到括号中,最后结出除以256就行了也就是右移8位,在FPGA中我们只需要丢弃低8位取高8位就行。

16bit RGB656 {R4 R3 R2 R1 R0} {G5 G4 G3 G2 G1 G0} {B4 B3 B2 B1 B0}

将RGB565—>YCbCr成功后,提取出Y的值输出,就可以拿走灰度色彩的图像了。

将RGB565—>YCbCr成功后,提取出Y的值输出,就可以得到灰度色彩的图像了。

24ibt RGB888 {R4 R3 R2 R1 R0 R2 R1 R0} {G5 G4 G3 G2 G1 G0 G1 G0} {B4 B3
B2 B1 B0 B2 B1 B0}

将征集到的RGB565的像素数量,输入到算法处理模块举办操作,由RGB565——>YCbCr——格雷(Gray)官方给出的公式来算,先将RGB565拆分开R
G B两个轻重,使用如上公式总计的到Y Cb
Cr是六个轻重。图片 7

将采集到的RGB565的像素数量,输入到算法处理模块举办操作,由RGB565——>YCbCr——Gray官方给出的公式来算,先将RGB565拆分开R
G B多少个轻重,使用如上公式总计的到Y Cb
Cr是六个轻重。图片 8

 图片 9

RGB转YCbCr算法的仿真过程,从图中能够见见,加了工艺流程后的演算过程,每一级运算相差一个时钟,但是每一流都在进展新的演算,大家加了3级流水线,这样运算速度可以升官3倍。图片 10

RGB转YCbCr算法的仿真过程,从图中可以观看,加了工艺流程后的演算过程,每一流运算相差一个时钟,可是每顶尖都在拓展新的演算,我们加了3级流水线,这样运算速度可以升官3倍。图片 11

运用高位补低位的措施直接转化即可。

最终将Y分量的数码输出,举行位拼接,16位的RGB565像素R、G、B分量分别对应的取Y分量的上位,最终的出口突显出来就是灰度图像了。图片 12

最终将Y分量的数码输出,举行位拼接,16位的RGB565像素R、G、B分量分别对应的取Y分量的要职,最后的出口展现出来就是灰度图像了。图片 13

这是法定给的RGB888 to
YCbCr的算法公式,大家得以一贯把算法移植到FPGA上,不过大家都领会FPGA不可以进展浮点运算,所以我们应用将总体式子右端先都增加256倍,然后再右移8位,这样就取得了FPGA擅长的乘法运算和加法运算了。

录像演示请看自己知乎链接http://t.cn/RO9DJoZ

视频演示请看我和讯链接http://t.cn/RO9DJoZ

图片 14 

        
对于肤色检测其实也是按照这么些基础上,首先使用如上图公式将RGB转化为YCbCr,然后经过对Cb和Cr分量设置阈值,我这边安装的是当Cb和Cr分量在那些阈值之间时,输出为全1,即白色,其他情况输出为全0,即为绿色,我动用前边的200×200的图样做试验,效果不怎么好,最终借用业界前辈CrazyBingo大神的视频头驱动,试了一下以此肤色识别算法,最终收获的功用仍可以的。那个用YCbCr阈值法实现肤色识此外措施,是不很确切,后边我会尝试用另一种识别方法来试着实现。

        
对于肤色检测其实也是基于这多少个基础上,首先拔取如上图公式将RGB转化为YCbCr,然后通过对Cb和Cr分量设置阈值,我这边安装的是当Cb和Cr分量在这个阈值之间时,输出为全1,即白色,其他情况输出为全0,即为绿色,我利用后边的200×200的图样做尝试,效果不怎么好,最终借用业界前辈CrazyBingo大神的视频头驱动,试了一下以此肤色识别算法,最终取得的职能仍可以够的。这些用YCbCr阈值法实现肤色识此外法门,是不很纯粹,前边我会尝试用另一种识别方法来试着实现。

本条统计式子看起来是卓殊简便的,不过假诺直接用Verilog直接写出来,那么只能说,这厮的代码写的一塌糊涂,所以这边就引出FPGA中流水线的统筹思想。

肤色识别YCbCr阈值

肤色识别YCbCr阈值

        
在这里我们挑选加3级流水线,就率先个Y分量而言,先计算括号中得乘法运算,消耗一个时钟,然后将括号中的数据求和,消耗一个时钟,这里为了统计方便,将128也扩充256倍,放到括号中,最后结出除以256就行了也就是右移8位,在FPGA中大家只需要屏弃低8位取高8位就行。具体代码如下

77 < Cb < 127

77 < Cb < 127

将RGB565—>YCbCr成功后,提取出Y的值输出,就足以博得灰度色彩的图像了。

133 < Cr < 173

133 < Cr < 173

将收集到的RGB565的像素数量,输入到算法处理模块进行操作,由RGB565——>YCbCr——格雷(Gray)官方给出的公式来算,先将RGB565拆分开R
G B五个轻重,使用如上公式总括的到Y Cb Cr是多个轻重。

图片 15

图片 16

图片 17

说到底的意义如下录像:http://t.cn/ROwEnrb

末段的法力如下录像:http://t.cn/ROwEnrb

RGB转YCbCr算法的仿真过程,从图中可以看来,加了工艺流程后的演算过程,每一流运算相差一个时钟,不过每顶尖都在举办新的演算,我们加了3级流水线,这样运算速度可以升官3倍。

  假使你想取得本文的具有课件,请关注自身的私家微信订阅号:开源FPGANingHeChuan或扫描下方二维码关注订阅号,在后台回复图像处理,即可得到本文的具备课件、资料以及更多FPGA的求学材料啊!

  即便你想赢得本文的装有课件,请关注我的私家微信订阅号:开源FPGANingHeChuan或扫描下方二维码关注订阅号,在后台回复图像处理,即可得到本文的保有课件、资料以及更多FPGA的上学资料啊!

图片 18

图片 19

图片 20

说到底将Y分量的数据输出,举办位拼接,16位的RGB565像素R、G、B分量分别对应的取Y分量的要职,最后的输出显示出来就是灰度图像了。

 

 

图片 21

转载请注脚出处:NingHeChuan(宁河川)

转载请阐明出处:NingHeChuan(宁河川)

图片 22

私家微信订阅号:开源FPGANingHeChuan

个人微信订阅号:开源FPGANingHeChuan

        
最终将原图与通过转灰度算法之后的图纸,举行相比较,咱们的lena漂亮的女生是不是在灰白显示下也很窘迫吗!

万一您想及时收到个人创作的博文推送,可以扫描左侧二维码(或者长按识别二维码)关注个体微信订阅号

尽管您想登时接受个人写作的博文推送,可以扫描左侧二维码(或者长按识别二维码)关注个体微信订阅号

假若你想博得本文的有着课件和工程代码,请关注我的私家微信订阅号:开源FPGANingHeChuan或扫描下方二维码关注订阅号,在后台回复图像处理,即可取得本文的拥有课件、资料、和工程源码哦!

知乎ID:NingHeChuan

知乎ID:NingHeChuan

图片 23 

微博ID:NingHeChuan

微博ID:NingHeChuan

转载请表明出处:NingHeChuan(宁河川)

原稿地址:http://www.cnblogs.com/ninghechuan/p/7574309.html 

原文地址:http://www.cnblogs.com/ninghechuan/p/7574309.html 

个体微信订阅号:开源FPGANingHeChuan

 

 

如若你想立马接受个人创作的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号

 

 

知乎ID:NingHeChuan

图像处理系列著作

图像处理系列随笔

微博ID:NingHeChuan

第一篇:基于FPGA的VGA展现静态图片

第一篇:依据FPGA的VGA显示静态图片

原文地址:http://www.cnblogs.com/ninghechuan/p/7403725.html 

第二篇:基于FPGA的RGB565_YCbCr_格雷(Gray)算法实现

第二篇:基于FPGA的RGB565_YCbCr_格雷(Gray)算法实现

第三篇:依照FPGA的Uart接收图像数据至VGA显示

第三篇:基于FPGA的Uart接收图像数据至VGA映现

番外篇:数字图像处理界标准图像 Lena后边的故事

番外篇:数字图像处理界标准图像 Lena前边的故事

第四篇:纠错:基于FPGA串口发送彩色图片数据至VGA显得

第四篇:纠错:基于FPGA串口发送彩色图片数据至VGA突显

相关文章