1、实验一 灰度变换灰度线性变换曝光不足或过度的情况下,图像灰度可能会局限在一个很小的范围内。这时在显示器上看到的是一个模糊不清似乎没有灰度层次的图像。用一个线性单值函数,对每一个像素作扩展变换(线性) ,将会有效地改变图像视觉效果。反变换 该方法特别适用于增强嵌入于图像暗色区域的白色或灰色细节。例:I=imread(cameraman.tif);imshow(I);I=double(I);I=256-1-I;I=uint8(I);figure; imshow(I);分段线性变换 增强图形对比度实际是增强原图的各部分反差,也就是增强图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。用分段线性
2、法将需要的图像细节灰度级拉伸,增强对比度,将不需要的图像细节灰度级压缩。(1)扩展感兴趣的,牺牲其他。对于感兴趣的a,b 区间,采用斜率大于 1 的线性变换来进行扩展,而把其他区间用 a 或 b 来表示,变换函数如下:当 f(m,n)b 时, g(m,n)=d。a bcdf(m,n)(2)扩展感兴趣的,压缩其他。在扩展感兴趣的a,b 区间的同时,为了保留其他区间的灰度层次,也可以采用其他区间压缩的方法。变换函数如下:当 0=f(m,n)a 时,g(m,n)=(c/a)*f(m,n);g(m.n)当 a=f(m,n)=b 时,g(m,n)=c+(d-c)/(b-a)* f(m,n)-a;当 bf
3、(m,n)=M 时,g(m,n)=d+(N-d)/(M-b)* f(m,n)-b 。a bcdf(m,n)M例:对于原图 pout.tif,将其小雨 30 的灰度不变,将 30 到 150 的灰度值拉伸到 30 到200,同时压缩 150 到 255 的灰度值到 200 与 255 之间Matlab 程序如下:%读入并显示原始图像I=imread(pout.tif);imshow(I);I=double(I);M,N=size(I);%进行灰度变换for i=1:Mfor j=1:Nif I(i,j)=30I(i,j)=I(i,j);elseif I(i,j)=150I(i,j)=(200-3
4、0)/(150-30)*(I(i,j)-30)+30;else I(i,j)=(255-200)/(255-150)*(I(i,j)-150)+200;endendend%变换后的结果figure(2);Ng(m.n)imshow(uint8(I);灰度非线性变换对数变换 在有些情况下,如在显示图像的福利叶谱时,其动态范围远超过显示设备的显示能力,此时,仅有图像中最亮部分可在显示设备上显示,而频谱中的低值将看不见。要消除因动态范围太大所引起的失真,一种有效的方法是对原图像的动态范围进行压缩。常用的是借用对数变换形式对动态范围进行调整,数学表达式为T=clog(1+|s|)例:设原图像的灰度值取
5、值范围为0,512,现要将原图的灰度压缩到 0,256;这时就可以使用对数变换,其公式是 t=41*log(1+|s|)Matlab 程序如下:I=imread(pout.tif);figure;imshow(I);I=double(I);I2=41*log(1+I);I2=uint8(I2);figure;imshow(I2);实验二 直方图(灰度)变换与直方图均衡化图像直方图是图像的重要统计特征。表示了数字图像中每一个灰度级与该灰度级出现的频率间的统计关系。若一幅图像其像素占有全部可能的灰度级且分布均匀,则这样的图像有高对比度和多变的灰度色调,从而显示出一幅灰度级丰富且动态范围大的图像。其
6、基本思想是将原始图像不均匀的直方图变换为均匀分布的形式,这样可加大灰度值得动态范围,从而达到增强灰度整体对比度的效果。Matlab 程序如下:I=imread(circuit.tif);figure;subplot(221);imshow(I);subplot(222);imhist(I);I1=histeq(I);figure;subplot(221);imshow(I1);subplot(222);imhist(I1);实验三 图像平滑(滤波)消除图像噪声的工作称之为图像图像平滑(滤波) 。平滑的目的有两个:改善图像质量以及抽出图像特征。平滑可以在空间域进行,也可以在频域进行。(1) 图像
7、平均另一种常用的方法是图像平均处理,它常用于在图像采集中去除噪声。设有一幅混入噪声的图像 g(x,y),它是由原始图像 f(x,y)和噪声图 e(x,y)叠加生成的:g(x,y)= f(x,y)+ e(x,y)假设各点的噪声是互不相关的,且具有零均值。在这种情况下,我们可以通过将一系列图像 (x,y)相加来消除噪声。设将 N 幅图像相加求平均得到一幅图像,即:igNiyxyx1_),(),(那它们的期望值为: ),(),(_yxfyxEg2),(2),(1_yxeyxN其中, 与 分别是 与 e 的方差。因此,考虑新图像和噪声图像各自均2),(_yxg2),(yxeg_方差间的关系,有:Mat
8、lab 程序I=imread(tire.tif);M,N=size(I);II1=zeros(M,N);for i=1:16II(:,:,i)=imnoise(I,gaussian,0,0.01);II1=II1+double(II(:,:,i);if or(or(i=1,i=4),or(i=8,i=16);figure;imshow(uint8(II1/i);endend(2)模版平滑第一幅图为原始图像,第二幅图为迭加了均匀分布随机噪声的 8 位灰度图象,最后几幅图依次为 3x3、5x5、7x7 和 9x9 平滑模板对原始图像进行平滑滤波的结果。由此可见,当所有平滑模板尺寸增大时,对噪声的消
9、除有所增强,但同时所得到的图像变得更加模糊,细节的锐化程度逐步减弱。像像像 像像像像像像像像 3x3像像像像像像5x5像像像像像像 7x7像像像像像像 9x9像像像像像像邻域平均法有力地抑制了噪声,同时也引起了模糊,模糊程度与邻域半径成正比。下面是 Matlab 实现的邻域平均法抑制噪声的程序:I=imread(eight.tif);J=imnoise(I,salt subplot(231),imshow(I);title(原图像 );subplot(232),imshow(J);title(添加椒盐噪声图像);k1=filter2(fspecial(average,3),J);k2=filter2(fspecial(average,5),J);k3=filter2(fspecial(average,7),J);k4=filter2(fspecial(average,9),J);subplot(233),imshow(uint8(k1);title(3x3 模板平滑滤波);subplot(234),imshow(uint8(k2);title(5x5 模板平滑滤波);subplot(235),imshow(uint8(k3);title(7x7 模板平滑滤波);subplot(236),imshow(uint8(k4);title(9x9 模板平滑滤波);