1、任务说明
打开一幅图像,进行直方图均衡。将灰度线性变化,将灰度拉伸。
2、算法原理
1) 图像灰度化
在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值,灰度范围为0-255。一般有四种方法对彩色进行灰度化,分别为:
分量法,最大值法,平均值法和加权平均法。本实验中采用平均值法,即
2) 直方图均衡
直方图表示数字图像中每一个灰度级与其出现频率间的统计关系。设有某一个灰度等级,属于该灰度等级的像素个数为nk,图像总像素个数为n,则直方图的定义为
图像的直方图反映了图像的灰度范围、灰度分布、图像的平均亮度等。
直方图均衡化也叫直方图均匀化,其目的是使所有灰度级出现的相对频率表相同,此时图像的熵最大,图像所包含的信息量最大。
本实验处理在离散情况下的直方图修正。其中第k个灰度级出现的概率为:
进行均匀化处理的变换函数为:
由新rk得到均衡化处理后的直方图。
3) 线性变化
设输入图像的的灰度范围为[a,b],希望经过变换后的输出图像的灰度范围变化为[c,d],则变换函数T的表达式可以表示为
根据不同的线性变换的斜率和截距,可以达到对图像不同的处理效果。当斜率大于1时,可以增加图像的对比度;当斜率在0与1之间时,
图像的对比度和整体效果都被削弱,灰度会被集中在一段区域上,灰度取值变窄,使图片趋于灰色。当斜率为负时,源图像较亮的区域变暗,
较暗的区域变量,可以实现反色效果。而当截距为正时,图像的亮度将会增加;截距为负时,图像的亮度将会降低。
4) 灰度拉伸(分段线性变化)
为了突出感兴趣的目标或灰度区间,相对一致不感兴趣的灰度区间,可以采用分段线性变换。本实验采用常用的三段线性变换方法。
具体算法如下:
3、算法实现
1) 图像灰度化
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
2) 直方图均衡
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
3) 线性变换
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
4) 灰度拉伸
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
|
4、实验
源图像
灰度图像
直方图均衡化
(-1,255)线性变换,相当于反色
灰度拉伸,某些像素得到凸显