当前位置:首页 > matlab在信号与图像处理中的应用第11章
5. 图像像素的统计特性 图像像素统计特性函数有:
均值函数mean2:调用格式为B=mean2(A),计算图像A的均值B,即矩阵元素的平均值。
标准差函数std2:调用格式为b=std2(A),计算图像A的标准差b,即矩阵的标准偏差。 相关函数corr2:调用格式为r=corr2(A,B),计算图像A和图像B的相关系数r,即两个矩阵的相关系数。
例11-3图像轮廓线及直方图计算,程序如下: I=imread(‘rice.png’); subplot(221) imshow(I)
title(‘原始图像’) subplot(223) imcontour(I)
title(‘图像的轮廓线’) subplot(122) imhist(I,64)
title(‘图像的直方图’) 结果如图11-2所示。
图11-2原始图像、轮廓线及其直方图
5
第11章 图像增强
11.1.2 直接灰度变换
在图像扫描的过程中,由于扫描系统或者光电转换系统多方面的原因,常出现扫描图像不均匀、对比度不足等弊端,使人眼在观看图像时视觉效果很差。灰度变换就是在图像采集系统中对图像像素进行修正,使图像整体成像均匀。
灰度变换分为3种:线性变换、分段线性变换和非线性变换。灰度变换可以使图像动态范围加大,图像对比度扩展、图像清晰、特征明显,是图像增强的重要手段。
1. 灰度的线性变换
若D??T?D?是一个线性单值函数,则由它确定的灰度变换称为灰度的线性变换,简称线性变换。假定原图像灰度值D?f?x,y?的灰度范围为[a,b],希望变换后的图像灰度值D??g?x,y?的灰度范围扩展为[a’,b’],则可采用下述线性变换来实现
D??b??a??D?a??a? (11-6) b?a例11-4 灰度倒置线性变换的程序实现,其效果如图11-3所示。 d=imread(‘peppers.png’); coloremap imshow(d)
j=imadjust(d,[0 1],[1 0],1.5) figure
subimage(j)
图11-3 原始图及灰度倒置线性变换后的图像
2. 灰度的分段线性变换
为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区域,常采用分段线性变换法。分段线性变换法是将图像的值域分成多个区间并进行不同的线性变换的一种算法。以下是常用的三段线性变换法,公式表示如下:
6
?a??aD??b??a?D????D?a??a??b?a?c??b??c?b?D?b??b??1?D?aa?D?bb?D?c (11-7)
原图像的灰度区间为[0,c],变换后的灰度区间为[0,c’]。由图11-4可以看出对灰度区间[a,b]进行了线性变换(扩展),增强其对比度;对区间[0,a]及[b,c]进行了压缩,降低其对比度。通过调整折线拐点及分段直线的斜率,可以在任一灰度区间进行扩展和压缩,但变换前后整幅图像总的灰度范围是不变的。
3. 灰度的非线性变换
灰度的非线性变换法是指由
D??T?D?这样一个非线性单值函数所确定的灰度变换。实
际应用中,常采用一些非线性函数如对数函数、指数函数等作为映射函数,来扩展低值灰度、
压缩高值灰度,从而使低值灰度的图像细节更易辨识,达到图像增强的效果。
对数变换的一般形式为
D??a?ln?D?1?b?lnc (11-8)
指数变换的一般形式为
cD?aD??b???1 (11-9)
其中,a、b、c是为了调整曲线的位置和形状而引入的参数。 对数变换可使低灰度范围的D得以扩展,而高灰度范围的D得到压缩。指数变换将减弱整个图像的亮度,它以牺牲低灰度区域的对比度为代价增加高灰度区域的对比度。
11.1.3 直方图灰度变换
直方图灰度变换是实现图像灰度变换最常用的方法。在Matlab2007a图像处理工具箱中,直接提供了imhist函数来计算和显示图像的直方图,imhist函数的调用格式前面已经介绍。例如,显示一幅图像的灰度直方图的程序如下:
I=imread(‘cameraman.tif’) imshow(I) figure,imhist(I)
结果如图11-4所示。
7
第11章 图像增强
图11-4原始图像及其直方图
可见可以通过直方图的形状来达到增强图像对比度的效果。
在Matlab2007a图像处理工具箱中提供了对比度调整函数imadjust,用于调整灰度或颜色图,其调用格式为:
J=imadjust(I,[low_in high_in],[low_out high_out],gamma)
表示将灰度图像I转换成图像J,在[low_in high_in]间的值对应于[low_out high_out],其他的值被剪切掉,并且把值分别置换成与low_out和high_out相对应,默认值为[0,1]。gamma用来描述变换函数曲线的形状,gamma<1,增强亮度;gamma>1,减小亮度;默认gamma=1,表示线性变换。
newmap=imadjust(map,[low_in high_in],[low_out high_out],gamma)
表示对索引图像的调色板进行变换,若low_in、high_in、low_out、high_out和gamma为标量,则分别对红、绿和蓝三色进行变换。若low_in、high_in、low_out、high_out为三元向量或gamma为三元向量,则映射不同的颜色(三色),分别进行各自指定的变换。newmap和map大小一致。
RGB2=imadjust(RGB1,…)
表示分别对每个图像板进行对应的映射变换。 下面通过示例说明imadjust函数的具体用法。 例11-5 imadjust函数示例: I=imread(‘cameraman.tif’); J=imadjust(I,[0.15 0.9],[0 1]); imshow(J)
figure,imhist(J,64) 结果如图11-5所示。
8
共分享92篇相关文档