【基于FPGA的图像处理工程】边缘检测工程之灰度转换模块代码解析
【基于FPGA的图像处理工程】
——边缘检测工程:灰度转换模块代码解析
本文为明德扬原创文章,转载请注明出处!
灰度转换模块的功能:该模块将接收到的RGB数据经过灰度转换公式计算,输出灰度数据给下一个模块。
一、设计架构
RGB图像转换成灰度图像的公式为:Gray = (red * 70 + green * 150 + bule *30)>>8
公式中的RGB是888格式,即R、G、B均用8比特表示。注意,本模块输入的是565格式,即R、G、B分别是5、6、5表示。
RGB565转成RGB888的方法,只要后面补0或者低位即可。例如R后面补3个0。

如上图,第1个像素进来的din为16’h0001,即R=5’b00000,G=6’b000000,B=5’b00001。
改为RGB888格式后,R=8’b00000000,G=8b’00000000,B=8’b00001000
如上图,第2个像素进来的din为16’h0203,即R=5’b00000,G=6’b001010,B=5’b00011。
改为RGB888格式后,R=8’b00000000,G=8’b00001010,B=8’b00000011。
二、信号的意义

三、参考代码
下面展出本模块的设计,欢迎进一步交流,如果需要源代码,欢迎与本人联系。

明德扬专注FPGA研究,我司正在连载两本书籍:《基于FPGA至简设计法实现的图像边缘检测系统》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=691)、《ASIC和FPGA时序约束理论与应用》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=705),有兴趣点击阅读。