天天看点

matlab将一个数组中的元素转换为整型_MATLAB中的图像变换之线性空间滤波

matlab将一个数组中的元素转换为整型_MATLAB中的图像变换之线性空间滤波

图像滤波是图像处理中重点的方式,它包括空间域滤波和频率域滤波,空间域滤波的应用通常体现在以下两个方面:

matlab将一个数组中的元素转换为整型_MATLAB中的图像变换之线性空间滤波

下面是空间滤波处理后的图像与原图像的对比:

matlab将一个数组中的元素转换为整型_MATLAB中的图像变换之线性空间滤波

凡是使用空间模板进行的图像处理,我们就定义为空间滤波,模板本身被称为空间滤波器。

图像的空域线性滤波和非线性滤波在空域对图像进行滤波处理无非两种情况:线性滤波和非线性滤波。滤波的意思就是对原图像的每个像素周围一定范围内的像素进行运算,运算的范围就称为掩膜或领域。而运算就分两种了,如果运算只是对各像素灰度值进行简单处理(如乘一个权值)最后求和,就称为线性滤波;而如果对像素灰度值的运算比较复杂,而不是最后求和的简单运算,则是非线性滤波;如求一个像素周围3x3范围内最大值、最小值、中值等操作都不是简单的加权,都属于非线性滤波。

一言以蔽之,区分线性滤波还是非线性滤波,主要依据是是否进行非线性运算,比如说,均值计算很明显是线性运算,所以均值滤波是线性滤波。

matlab将一个数组中的元素转换为整型_MATLAB中的图像变换之线性空间滤波

下面我们进行系统的学习:

一.imfilter函数

imfilter函数是用来实现线性空间滤波的主体函数,它基本的语法是:

g = imfilter(f, w,' replicate');
           

其中,f是输入图象,w为滤波掩模,g为滤波结果replicate为imfilter函数的选项,具体选项类型见下表:

matlab将一个数组中的元素转换为整型_MATLAB中的图像变换之线性空间滤波
二.线性空间滤波实践

题目:使用函数imfilter实现拉普拉斯滤波器

我们用一副火星表面的图象进行操作:

matlab将一个数组中的元素转换为整型_MATLAB中的图像变换之线性空间滤波

1.读取图像并转化为灰度图。

I=imread('hx.jpg');   %读入图像
figure
subplot(2,3,1);     %在窗口中排列图像
imshow(I)     %X显示图像
title('原始图像');      %赋标题
J=rgb2gray(I);     %转化为灰度图
subplot(2,3,2);
imshow(J);
title('原图像灰度图');
           

2.创建拉普拉斯滤波器并直接进行滤波输出。

w=fspecial('laplacian',0)   %生成并显示拉普拉斯滤波器
w=[0 1 0;1 -4 1;0 1 0];   %规定其形状
K=imfilter(J,w,'replicate');    
subplot(2,3,3);
imshow(K)
title('直接滤波图象');
           

这里要注意的一点是,滤波后的图像的每个元素使用双精度浮点算术进行计算。然而,imfilter会将输出图像转抉为与输入图像相同的类。因此,若f是一个整数数组,则输出中超过整型范围的元素将被截断,且小数部分会四舍五入。若结果要求更高的精度,则需要在使用函数imfilter之前利用im2double或double转换为double类。

就比如我们这里,第三幅图显示了结果图像,其结果看似合理,但存在一个问题:所有的像素都是正的。由于滤波器中心系数为负,因此我们通常希望得到的是一个带有正值和负值的拉普拉斯图像。但此时,f是uint8类的,如前节所述,imfilter给出了与输入图像类相同的输出,所以负值被截掉了。在对图像滤波前,通过将其转换为浮点数可解决这一问题:

3.转换为浮点数并再次滤波。

F=im2uint16(J);
W=imfilter(F,w,'replicate');
subplot(2,3,4);
imshow(W)
title('带有正值和负值的拉普拉斯图像')
           

4.最后,从原始图像中减去(因为中心系数为负值)拉普拉斯图像,以恢复失去的灰度层次:

E=F-W;
subplot(2,3,5);
imshow(E)
title('处理后的最终图像');
           
matlab将一个数组中的元素转换为整型_MATLAB中的图像变换之线性空间滤波

可以看到,图5比图二要更加清晰。

今天的分享就到这里,关注我,每天更新matlab和数字图像处理的相关内容,获取更多知识可以关注下我们的公众号Asoul水云天课堂,也可以加qq群953314432和各路大神一起学习。

继续阅读