matlab实现高斯模糊
时间: 2024-05-22 16:09:20 浏览: 459
高斯模糊是一种常见的图像处理方法,可以用于减少图像噪声和平滑图像轮廓。这里提供两种基于MATLAB实现高斯模糊的方法:
1. 利用MATLAB自带函数imgaussfilt实现高斯模糊[^2]:
```matlab
img = imread('image.jpg'); % 读取图片
sigma = 5; % 设置高斯模糊参数
img_blur = imgaussfilt(img, sigma); % 进行高斯模糊
imshow(img_blur); % 显示模糊后的图片
```
2. 基于自定义高斯滤波器实现高斯模糊[^1]:
```matlab
% 读取图片并转换为灰度图像
img = imread('image.jpg');
img_gray = rgb2gray(img);
% 定义高斯滤波器函数
gaussian_filter = @(x, y, sigma) (1 / (2 * pi * sigma^2)) * exp(-(x^2 + y^2) / (2 * sigma^2));
% 定义高斯模糊函数
gaussian_blur = @(img_gray, sigma) conv2(img_gray, arrayfun(@(x) arrayfun(@(y) gaussian_filter(x - 1, y - 1, sigma), 1:3), 1:3, 'UniformOutput', false), 'same');
% 设置高斯模糊参数并进行高斯模糊
sigma = 5;
img_blur = gaussian_blur(img_gray, sigma);
% 显示模糊后的图片
imshow(img_blur);
```
阅读全文