Matlab圖像濾波imfilter與fspecial

本文深入探讨了MATLAB中imfilter()与fspecial()函数的功能与用法,包括如何对任意类型数组或多维图像进行滤波以及创建预定义的滤波算子。通过实例演示了如何使用这些函数实现图像处理任务,如运动模糊和边沿增强,并解释了参数选项的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.csdn.net/star_gdx/article/details/14523937

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)

 

fspecial()

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' 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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值