1、bicubic %将图像以双三次插值放大两倍 figure,imshow(J) %图像输出显示 figure,imshow(x1) figure,imshow(x2)figure,imshow(x3)输入输出图像对比图1-1 原图输出 图1-2 最近邻插值放大2倍输出图1-3 双线性插值放大2倍输出图1-4双三次插值放大2倍输出2. 图像的点处理-灰度变换/直方图调整点处理是通过像元亮度值(灰度值)的变换来实现的。灰度变换是一种简单实用的方法,它可使图像动态范围增大,图像对比度扩展,图像变清晰,特征明显。灰度变换可以分为比例线性变换、分段线性变换和非线性灰度变换。2.1 比例线性变换比例线性变
2、换是对单波段逐个像元进行处理的,它是将原图亮度值动态范围按线性关系式扩展到指定范围或整个动态范围。假定原图像f(x,y)的灰度范围是a,b,希望变换后图像的动态范围是c,d,则可以用一下公式来实现变换: (1-1)以下是比例线性变换的程序设计及实现: x=imread(airforce.bmp %图像文件读入 I=rgbgray2(x); %该语句由后期修改,修改后影响原图输出效果 figure,imshow(I); %原图显示输出 f0=0;g0=0; f1=10;g1=10; f2=180;g2=1800; f3=255;g3=255; %定义点以确定线段(此处随机定义) figure,p
3、lot(f0,f1,f2,f3,g0,g1,g2,g3) axistight,xlabel(f),ylabel(g) title(intensitytransformation) %绘制变换曲线 r1=(g1-g0)/(f1-f0); b1=g0-r1*f0; r2=(g2-g1)/(f2-f1); b2=g1-r2*f1; r3=(g3-g2)/(f3-f2); b3=g2-r3*f2; %根据变量曲线点求出变量关系式 m,n=size(I); J=double(I); for i=1:mfor j=1:nf=J(i,j);g(i,j)=0;if(f=f1)&(f=f2)&=f3)g(i,j
4、)=r3*f+b3; %计算各图像元变换后灰度值end figure,imshow(mat2gray(g) %输出变换后灰度图像以下是程序运行结果:图2-1 原图像图2-2 绘制出的变换曲线图2-3 比例线性变换处理后图像输出2.2 分段线性变换分段线性变换是为了突出人们感兴趣的目标或亮度值区间,要求局部扩展亮度值范围。它可以有效地利用有限个灰度级,达到最大限度增强图像中有用信息的目的。假设感兴趣的区域是(a,b),可以采用以下的分段变换公式: (2-2)下面利用分段线性变换来对图像进行处理,假定感兴趣的区间是(30,180),可以得到分段线性变换程序如下:%分段线性变换airforce2.b
5、mp %该语句由后期修改,修改后影响原图输出效果 figure,imshow(I) %显示原图像 f1=30;g2=220; %设点,给出感兴趣的区间)分段线性变换曲线 r2=(g2-g1)/(r2-r1); %求变换关系式 figure,imshow(mat2gray(g) %输出变换后图像运行以上程序,得到结果:图3-1 原图像图 3-2 分段变换的变换曲线图3-3 分段线性变换处理后图像输出2.3 非线性灰度变换非线性灰度变换对于要进行扩展的亮度范围是有选择的,扩展的程度是随着亮度值的变化而连续变化的,有两种方法:(1) 对数变换,作用对图像的低亮度区有较大的扩展而对高亮度区压缩。(2)
6、 指数变换,此种变换可以对图像的高亮度区给予较大的扩展。下面以对数变换为例,其目的与增强对比度相反,当原图的动态范围太大,超出了某些显示设备所允许的动态范围时,可采用对数形式的变换函数进行动态范围压缩:g=c log(1+f)。其中c是比例尺常数,下面采用对数形式的变换函数设计实现图像动态范围压缩:% 以对数变换对图像进行非线性灰度处理nv3.bmp %该语句后期由修改 figure,imshow(I)Warning: Image is too big to fit on screen; displaying at 67% In imuitoolsprivateinitSize at 73 I
7、n imshow at 262 c=255/log(256); x=0:1:255; y=c*log(1+x); figure,plot(x,y)对数变化曲线g(i,j)=c*log(J(i,j)+1); figure,imshow(mat2gray(g)运行以上程序得出结果:图 4-1 原图像图 4-2 对数变换曲线图 4-3 对数变换后图像效果显示2.4 直方图均衡化一般情况下,如果图像的灰度分别集中在较窄的区间,从而引起图像细节的模糊,为了使图像细节清晰,并使一些目标得到突出,达到增强图像的目的,可通过改善各部分亮度的比例关系,即通过直方图的方法来实现。直方图均衡化是将一已知灰度概率密度
8、分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,其结果是扩展了像元取值的动态范围,从而达到了增强图像对比度的效果。下面是直方图均质化的变换源程序:nv.bmp y=rgb2gray(x); figure,imhist(y) %原图直方图输出 z=histeq(y); %直方图均值化 figure,imshow(y) %显示源图像 figure,imshow(z) %变换后图像输出 figure,imhist(z) %变换后直方图输出运行结果如下:图 5-1 原图像直方图图5-2 原图像输出图5-3 直方图均值化后图像输出图5-4 均值化处理后的直方图3 空间域滤波空间域滤波一
9、般可以分为线性滤波和非线性滤波两类。根据功能又可以分为平滑滤波和锐化滤波平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小间断连接起来;另一类是消除噪声。锐化可以用高通滤波器实现,锐化的目的是增强被模糊的细节。3.1 平滑滤波器平滑滤波器,它能减弱或消除傅里叶空间的高频分量,但不影响低频分量,因为高频分量对应图像中的区域边缘等灰度值具有较大较快变化的部分,滤波器将这些分量滤去可使图像平滑。线性平滑滤波包括均值滤波和Wiener滤波,非线性平滑滤波包括最小值滤波,中值滤波和最大值滤波。%均值滤波的实现chengzi.bmp I=rgb2gray(x); ims
10、how(I) K1=filter2(fspecial(average,3),I)/255; %3*3的均值滤波 K2=filter2(fspecial(,5),I)/255; %5*5的均值滤波 K3=filter2(fspecial(,7),I)/255; %7*7的均值滤波 figure,imshow(K2) figure,imshow(K1) figure,imshow(K3)图6-1 原图像图6-2 3*3均值滤波后图像图 6-3 5*5均值滤波图像图6-4 7*7均值滤波图像%中值滤波 K1=medfilt2(I,3,3); %进行3*3中值滤波 K2=medfilt2(I,5,5)
11、; %进行5*5中值滤波 K3=medfilt2(I,7,7); %进行7*7中值滤波图7-1 原图像图7-2 3*3中值滤波处理后图像图7-3 5*5中值滤波处理后图像图7-4 7*7中值滤波后图像3.2 锐化滤波器在图像识别中,需要有边缘鲜明的图像,即图像锐化。图像锐化的目的是为了突出图像的边缘信息,加强图像的轮廓特征,以便于人眼的观察和机器的识别。锐化滤波包括线性锐化和非线性锐化,利用拉普拉斯算子可实现线性锐化,非线性锐化可利用Sobel算子,Prewitt算子和高斯-拉普拉斯算子实现。下面利用拉普拉斯算子实现线性锐化,以观察锐化处理后的图像效果。在Matlab中可通过调用filter2函数和fspecial函数来实现该变换。%利用拉普拉斯算子实现图像的非线性锐化jiuping.bmp I=double(I); %将图像矩阵转化为double型 h1=fspecial(laplacian %拉式变换 J=filter2(h1,I); %滤波处理 figure,imshow(I,); %原图像输出 K=I-J; %增强图像为原图像减去拉式变换后的结果 figure,imshow(K,); %变换后图像输出图8-1 原图像图8-2 拉普拉斯算子处理后图像用同样的方式可以利用Sobel算子,Prewitt算子和高斯-拉普拉斯算子实现非线性锐化滤波。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1