学习RGB24图像灰度转换的原理,掌握图像的读取方法,并实现在LCD上显示灰度转换前后的图像。
RGB颜色空间作为一种常用的彩色图像表示模型,分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。一般情况下,RGB彩色图像灰度化有三种转化方案:
(1)加权平均法
(2)平均值法:对彩色图像的每个像素中的R、G、B三个分量的值进行简单的算术平均,将得到的平均值作为灰度图像对应像素的亮度值。
(3)最大值法:将彩色图像的每个像素中的R、G、B三个分量中的最大值作为灰度图对应像素的灰度值。
RGB24图像灰度转换:加权平均法
所谓加权平均法就是根据三基色的重要性及其他指标,将R、G、B三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此我们可以按照下式对R、G、B三分量进行加权平均,则能得到较合理的灰度图像。
而实际应用时,希望避免低速的浮点运算,所以需要整数算法,变种的公式:
Gray = (R30 + G59 + B*11 + 50) / 100
整数算法已经很快了,但是最后的除法仍制约了速度。移位比除法快多了,所以可以将系数缩放成 2 的整数幂。
本实验使用8位精度,2 的 8次幂是256,所以这样计算系数
0.299 * 256 = 76.544 ≈ 76
0.587 * 256 + (0.544) = 150.272 + 0.264 = 150.816 ≈ 150
0.114 * 256 + (0.816) = 29.184 + 0.896 = 30.08
由于四舍五入会有较大的误差,所以将以前的计算结果的误差一起计算进去,舍入方式是去尾法。移位优化之后,8位精度系数,如下:
Gray = (R76 + G150 + B*30) >> 8
程序流程设计
程序流程设计中首先要进行外设使能配置,接着进行LCD管脚复用配置和LCD中断配置,然后进行LCD显示的初始化,最后读取工程目录下的BMP图像并进行RGB24图像的灰度转换处理,将图像数据显示到LCD上。
本实验使用的硬件接口为LCD,所需硬件为实验板、仿真器、LCD和电源。
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,CCS的Console窗口会打印相关信息,同时LCD会显示标题。
稍等片刻后,图像处理完成,LCD会显示灰度转换处理前后的图片。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
更多回帖