Matlab fspecial
时间: 2023-12-24 19:16:04 浏览: 97
在 MATLAB 中,`fspecial` 函数可以用于生成各种类型的预定义滤波器,例如高斯滤波器、拉普拉斯滤波器、平均滤波器等。`fspecial` 函数的调用格式如下:
```
H = fspecial('type', parameters)
```
其中,`type` 表示滤波器的类型,可以是以下之一:
- `'average'` 或 `'box'`:平均滤波器
- `'disk'`:圆盘滤波器
- `'gaussian'` 或 `'gauss'`:高斯滤波器
- `'laplacian'` 或 `'laplac'`:拉普拉斯滤波器
- `'log'` 或 `'logarithmic'`:LoG 滤波器
- `'motion'`:运动模糊滤波器
- `'prewitt'`:Prewitt 滤波器
- `'sobel'`:Sobel 滤波器
- `'unsharp'` 或 `'unsharp_mask'`:锐化滤波器
- `'directional'` 或 `'line'`:方向性滤波器
`parameters` 则表示不同类型滤波器的参数,具体可以参考 MATLAB 文档。
下面以高斯滤波器为例,演示 `fspecial` 函数的用法:
```matlab
% 生成一个大小为 5x5,标准差为 1.5 的高斯滤波器
H = fspecial('gaussian', [5 5], 1.5);
% 将 H 应用到图像上
I = imread('example.jpg');
I_filtered = imfilter(I, H, 'replicate'); % 使用 'replicate' 表示沿边界处像素值不变
```
上述代码将 `H` 应用到 `example.jpg` 图像上,即可得到经过高斯滤波器平滑后的图像 `I_filtered`。
阅读全文