fspecial,imfilter

(1) 2024-05-11 18:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说fspecial,imfilter,希望能够帮助你!!!。

一、fspecial函数用于建立预定义滤波算子,其语法格式为:

h = fspecial(type)


h = fspecial(type

para)

其中
type
指定算子的类型,
para
指定相应的参数


type
的类型有:


1

'average'
averaging filter


为均值滤波,参数为
hsize
代表模板尺寸,默认值为【
3

3
】。


H = FSPECIAL('average',HSIZE) returns an averaging filter H of size

HSIZE. HSIZE can be a vector specifying the number of rows and columns in


H or a scalar, in which case H is a square matrix.



The default HSIZE is [3 3].


2

 'disk'
circular averaging filter



为圆形区域均值滤波,参数为
radius
代表区域半径,默认值为
5.


H = FSPECIAL('disk',RADIUS) returns a circular averaging filter

(pillbox) within the square matrix of side 2*RADIUS+1.


The default RADIUS is 5.



3

'gaussian'
Gaussian lowpass filte
r



为高斯低通滤波,有两个参数,
hsize
表示模板尺寸,默认值为【
3 3
】,
sigma
滤波器的标准值,单位为像素,默认值为
0.5.


H = FSPECIAL('gaussian',HSIZE,SIGMA) returns a rotationally

symmetric Gaussian lowpass filter
of size HSIZE with standard


deviation SIGMA (positive). HSIZE can be a vector specifying the


number of rows and columns in H or a scalar, in which case H is a


square matrix.


The default HSIZE is [3 3], the default SIGMA is 0.5.



4

'laplacian' 
laplacian filter approximating the 2-D Laplacian operator


为拉普拉斯算子,参数
alpha
用于控制算子形状,取值范围为【
0

1
】,默认值为
0.2.

H = FSPECIAL('laplacian',ALPHA) returns a 3-by-3 filter


approximating the shape of the two-dimensional Laplacian


operator. The parameter ALPHA controls the shape of the


Laplacian and must be in the range 0.0 to 1.0.


The default ALPHA is 0.2.



5

'log'
Laplacian of Gaussian filter



为拉普拉斯高斯算子,有两个参数,
hsize
表示模板尺寸,默认值为【
3 3
】,
sigma
为滤波器的标准差,单位为像素,默认值为
0.5.


H = FSPECIAL('log',HSIZE,SIGMA) returns a rotationally symmetric

Laplacian of Gaussian filter of size HSIZE with standard deviation


SIGMA (positive). HSIZE can be a vector specifying the number of rows


and columns in H or a scalar, in which case H is a square matrix.


The default HSIZE is [5 5], the default SIGMA is 0.5.



6

'motion'
motion filter



为运动模糊算子,有两个参数,表示摄像物体逆时针方向以
theta
角度运动了
len
个像素,
len
的默认值为
9

theta
的默认值为
0



H = FSPECIAL('motion',LEN,THETA) returns a filter to approximate, once

convolved with an image, the linear motion of a camera by LEN pixels,


with an angle of THETA degrees in a counter-clockwise direction. The


filter becomes a vector for horizontal and vertical motions.
The 

default LEN is 9, the default THETA is 0, which corresponds to a

horizontal motion of 9 pixels.



7

'prewitt'
Prewitt horizontal edge-emphasizing filter



用于边缘增强,大小为【
3 3
】,无参数


H = FSPECIAL('prewitt') returns 3-by-3 filter that emphasizes

horizontal edges by approximating a vertical gradient. If you need to


emphasize vertical edges, transpose the filter H: H'.


[1 1 1;0 0 0;-1 -1 -1].



8

'sobel'
Sobel horizontal edge-emphasizing filter



用于边缘提取,无参数


H = FSPECIAL('sobel') returns 3-by-3 filter that emphasizes

horizontal edges utilizing the smoothing effect by approximating a


vertical gradient. If you need to emphasize vertical edges, transpose


the filter H: H'.


[1 2 1;0 0 0;-1 -2 -1].



9

'unsharp'
unsharp contrast enhancement filter



为对比度增强滤波器。参数
alpha
用于控制滤波器的形状,范围为【
0

1
】,默认值为
0.2.


H = FSPECIAL('unsharp',ALPHA) returns a 3-by-3 unsharp contrast

enhancement filter. FSPECIAL creates the unsharp filter from the


negative of the Laplacian filter with parameter ALPHA. ALPHA controls


the shape of the Laplacian and must be in the range 0.0 to 1.0.


The default ALPHA is 0.2.

二、imfilter:对任意类型数组或多维图像进行滤波

用法:
B = imfilter(A,H)


   
B = imfilter(A,H,option1,option2,...)


   或写作
g = imfilter(f, w, filtering_mode, boundary_options, size_options)


其中,
f
输入图像,
w
为滤波掩模,
g
为滤波后图像。
filtering_mode
用于指定在滤波过程中是使用“相关”还是“卷积”。
boundary_options
用于处理边界充零问题,边界的大小由滤波器的大小确定。具体参数选项见下表:

选项 描述
filtering_mode ‘corr’ 通过使用相关来完成,该值为默认。
‘conv’ 通过使用卷积来完成
boundary_options ‘X’ 输入图像的边界通过用值X(无引号)来填充扩展
其默认值为0
‘replicate’ 图像大小通过复制外边界的值来扩展
‘symmetric’ 图像大小通过镜像反射其边界来扩展
‘circular’ 图像大小通过将图像看成是一个二维周期函数的一个周期来扩展
size_options ‘full’ 输出图像的大小与被扩展图像的大小相同
‘same’ 输出图像的大小与输入图像的大小相同。这可通过将滤波掩模的中心点的偏移限制到原图像中包含的点来实现,该值为默认值。




举例:

originalRGB = imread('peppers.png');


imshow(originalRGB)


h = fspecial('motion', 50, 45);%
创建一个滤波器


filteredRGB = imfilter(originalRGB, h);


figure, imshow(filteredRGB)

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复