matlab实验
在MATLAB数字图像处理领域,如何实现空间域图像增强的灰度变换,以及图像直方图的均衡和匹配(配准)?本文通过大量的图片增强案例,从图像的显示效果和灰度直方图分析入手,通过自编程,详细地讲解了图像的四种灰度变换;使用 MATLAB 自带的 imadjust 函数;以及直方图均衡化和规定化(匹配)处理的图像增强方法。
Matla空间域图像增强:基本的灰度变换
1. 负片变换
2. 对数变换
3. 伽马变换
4. 灰度拉伸
使用imadjust函数增强图像
图像的直方图均衡化处理
图像的直方图规定化(匹配) 处理
1. 显现图像被模糊了的细节
2. 突出一幅图像中感兴趣的特征
1. 有时候是非常主观的,不同的人,各有偏爱
2. 图像增强之后,以机器能识别为基本标准
主要参考文献
1. 冈萨雷斯数字图像处理,阮秋琦等译
2. 冈萨雷斯数字图像处理(MATLAB版),阮秋琦等译
灰度图像的直方图
横轴:灰度图像的灰度级[0, L-1]
纵轴:[0, L-1] 中各灰度值的像素在图像总像素中的数量(所占比例)
MATLAB 函数:imhist
MATLAB 中的很多操作和函数,不支持uint8 的数据类型
为了便于处理,一般将uint8 数据类型的图像,转换为double 型
转换函数:im2double
伽马变换函数(double 类型图像)
令c = 1,设定不同的γ 值时,计算并绘制伽马变换函数
1. 当γ = 1 时,输出灰度与输入灰度相同
2. 当γ < 1 时,与对数变换的效果类似:太过灰暗的像素得到增强
3. 当γ > 1 时,与γ < 1 时刚好相反:太过明亮的像素得到抑制
灰度拉伸函数(double 类型图像)
令E = 20,设定不同的m 值,计算并绘制灰度拉伸函数
令m = 0.5,设定不同的E 值,计算并绘制灰度拉伸函数
使用MATLAB imadjust函数增强图像
针对于图像的伽马变换,MATLAB 自带imadjust函数
J = imadjust(I, [low;high], [bottom; top], gamma)
输入灰度low ~ high à输出灰度bottom ~ top
输入灰度小于lowà输出灰度为bottom
输入灰度大于highà输出灰度为top
使用imadjust来增强前述所有的原始图片
图像的直方图描述了一幅图像的概貌,在前述灰度变换的实例中(尤其是灰度拉伸),经过灰度变换之后,图像的灰度值在整个[0, 1] 灰度级上分布更加均匀,图像的显示效果明显改善
读取四幅不同显示效果的图像,绘制直方图,并做比较
直观上说,如果一副图像的像素占有全部可能的灰度级,并且分布均匀,这样的图像有着高的对比度和丰富多变的色调,通过对图像进行直方图均衡化处理,可以使得图像的像素在整个灰度级上近似均匀分布
MATLAB自带histeq函数,T为图像从I到J 的灰度变换函数
[J, T] = histeq(I)
J = histeq(I)
分别对四副花粉图像做直方图均衡化处理,并绘制直方图和灰度变换函数
数字图像的MATLAB直方图规定化(匹配)处理
直方图的均衡化处理是图像增强的一种好方法,但有时均匀的直方图并不是图像增强的最好方法
由于图像主要是大片的暗区域,大量的像素值接近于0,直方图均衡化处理,并没有得到期望的效果
有些时候,希望处理的图像具有指定的直方图形状:直方图规定化(匹配)保留原直方图的大体形状,在暗灰度值部分的像素分布,做平滑过渡处理
图像的直方图规定化处理,也是使用histeq 函数,调用格式如下
J = histeq(I,hgram), hgram 为规定化的直方图形状根据原始直方图的特点,利用sin 函数,构造出两个不同高度的波峰,分别置于像素灰度值较小处和较大处
全部0条评论
快来发表一下你的评论吧 !