【VC++开源代码栏目提醒】:网学会员为广大网友收集整理了,VC++数字图像处理源程序及详解之2(灰度线性变换) - 编程语言,希望对大家有所帮助!
9.2 灰度线性变换灰度线性变换是最
常用的点运算 操作之一,下面先介绍其基本原理。
9.2.1
基本原理灰度线性变换是灰度变换的
一种,图像的灰度变换通过
建立灰度映射来
调整源图像的灰度从而达到图像增强的目的。
灰度映射通常是用灰度变换曲线来表示的,如图 9-7 所示。
灰度线性变换就是将图像的像素值通过指定的线性函 数进行变换,以此
增强或者减弱图像的灰度。
灰度线性变换的公式就是
常见的一维线性函数:gx ykfx yd设 x 为原始灰度值,则变换后的灰度 值 y 为:也可以在坐标系中表示转化关系,如图 9-7 所示。
图 9-7 灰度线性变换图 9-7 坐标中的横轴表示输入灰度值,范围是 0 至 255;纵坐标表示输出灰度值,
范围同样是 0 至 255;直线则为线性变换函数的
图形。
如果将输入灰度值
作为自变量 x,则输出的灰度值就是函数 yTx 的运算结果。
对于线性变换而言,有Txkxd。
例如图 9-7 中的变换
函数为 Txx, 即原公式
中的 k1,d0。
由
数学知识可以知道 k 表示直线的斜 率,也就是倾斜程度;d 为线性函数在 y轴的斜率。
下面通过
讨论 k 的取值来
分析灰度线性变换的效果。
1)当 k1 时 此时可用 于增加图像的对比度。
图像的像素值在变换后全部增大,整体显示
效果被增强,如图 9-8 所示。
图 9-8 变换
后的图像、对应变换函数和直方图 可以看 到,图像经过变换后,其灰度分布被拉伸了。
读者
可以与图 9-1 中的直方图
进行比较。
2)当 k1 时 这种情况 常
用于调节图像亮度。
在第 6 章中已经
介绍过了,亮度的
调节就是让图像的各像素值都增加或者减少一定量。
这种情况下可以通过改变 d 的值达到增 加或者减少图像亮
度的目的,如图 9-9 所示。
图 9-9 利用线性变换
改变图像亮度 可以看 到,当 d0 时图像亮度增加,反之则减少。
对应直方图的
显示效果是灰度
分布整体向右或者向左平移。
3)当 0