高斯滤波函数 matlab
时间: 2023-10-31 17:46:00 浏览: 159
高斯滤波 MATLAB
高斯滤波是一种平滑滤波算法,可以用来去除图像中的噪声和细节,使图像更加平滑。其核心思想是使用高斯函数作为滤波器,对图像进行卷积运算。在 MATLAB 中,可以使用函数 imgaussfilt 或 fspecial 来实现高斯滤波。
imgaussfilt 函数的语法如下:
B = imgaussfilt(A, sigma)
其中,A 是待滤波的图像,sigma 是高斯函数的标准差。函数的返回值 B 是滤波后的图像。
fspecial 函数的语法如下:
h = fspecial('gaussian', hsize, sigma)
其中,hsize 是滤波器的大小,sigma 是高斯函数的标准差。函数的返回值 h 是一个高斯滤波器。可以使用 imfilter 函数将 h 应用到图像上。
示例代码:
A = imread('lena.png'); % 读取图像
B = imgaussfilt(A, 2); % 使用 imgaussfilt 进行高斯滤波
h = fspecial('gaussian', [5 5], 2); % 创建 5x5 大小的高斯滤波器
C = imfilter(A, h); % 使用 imfilter 应用滤波器
figure;
subplot(1,3,1); imshow(A); title('原图');
subplot(1,3,2); imshow(B); title('imgaussfilt');
subplot(1,3,3); imshow(C); title('imfilter');
阅读全文