matlab 高斯滤波
时间: 2023-11-03 14:03:16 浏览: 116
高斯滤波是一种常用的图像处理方法,用于平滑图像并降低噪声。在MATLAB中,你可以使用`imgaussfilt`函数来实现高斯滤波。
以下是一个使用`imgaussfilt`函数进行高斯滤波的示例代码:
```matlab
% 读取图像
image = imread('image.jpg');
% 高斯滤波
filteredImage = imgaussfilt(image, sigma);
% 显示结果
imshow(filteredImage);
```
在上述代码中,`image.jpg`是你要处理的图像文件名,`sigma`是高斯滤波器的标准差参数。你可以根据需要调整`sigma`的值来控制滤波效果,较大的`sigma`会产生更宽的滤波器,从而平滑图像更多。
相关问题
matlab 维纳滤波
以下是使用MATLAB进行维纳滤波的示例代码:
```matlab
% 读取图像
img = imread('lena.png');
% 添加高斯白噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
% 显示原始图像和加噪声后的图像
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(noisy_img);
title('Noisy Image');
% 计算噪声方差
noise_var = var(double(noisy_img(:)));
% 维纳滤波
wnr_img = deconvwnr(noisy_img, fspecial('gaussian', 5, 2), noise_var);
% 显示维纳滤波后的图像
figure;
imshow(wnr_img);
title('Wiener Filtered Image');
```
这段代码首先读取一张图像,然后添加高斯白噪声。接着计算噪声方差,并使用`deconvwnr`函数进行维纳滤波。最后显示维纳滤波后的图像。
matlab 中值滤波函数
以下是MATLAB中使用中值滤波函数medfilt2()的示例:
```matlab
% 读取图像
img = imread('example.jpg');
% 对图像进行中值滤波
filtered_img = medfilt2(img);
% 显示原始图像和中值滤波后的图像
subplot(1,2,1), imshow(img), title('Original Image');
subplot(1,2,2), imshow(filtered_img), title('Filtered Image');
```
上述代码中,首先使用imread()函数读取一张图像,然后使用medfilt2()函数对图像进行中值滤波,最后使用subplot()和imshow()函数将原始图像和中值滤波后的图像显示在同一窗口中。
阅读全文