图像去噪、边缘锐化和图像平滑 matlab代码实现
时间: 2024-02-05 15:02:58 浏览: 103
图像去噪、边缘锐化和图像平滑是数字图像处理中的基本操作,Matlab提供了丰富的工具箱和函数来实现这些操作。下面是一些示例代码,可以进行参考:
1. 图像去噪
使用中值滤波器可以有效地去除图像的噪声,并且不会使图像模糊。
```matlab
% 读取图像
img = imread('lena.jpg');
% 添加椒盐噪声
img_noise = imnoise(img, 'salt & pepper', 0.02);
% 中值滤波去噪
img_denoised = medfilt2(img_noise, [3 3]);
% 显示结果
figure;
subplot(1, 2, 1);
imshow(img_noise);
title('Noisy Image');
subplot(1, 2, 2);
imshow(img_denoised);
title('Denoised Image');
```
2. 边缘锐化
使用拉普拉斯算子可以增强图像的边缘,并且使得图像更加清晰。
```matlab
% 读取图像
img = imread('lena.jpg');
% 拉普拉斯算子锐化
laplacian_filter = fspecial('laplacian');
img_sharpened = imfilter(img, laplacian_filter, 'replicate');
% 显示结果
figure;
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(img_sharpened);
title('Sharpened Image');
```
3. 图像平滑
使用高斯滤波器可以平滑图像,并且可以去除图像中的噪声。
```matlab
% 读取图像
img = imread('lena.jpg');
% 高斯滤波平滑
img_smoothed = imgaussfilt(img, 3);
% 显示结果
figure;
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(img_smoothed);
title('Smoothed Image');
```
以上代码仅供参考,实际应用时还需要根据具体情况进行调整和优化。