用MATLAB写出对一副图像加噪声(高斯,椒盐等),进行平滑,锐化,观察其图像变化的代码
时间: 2024-12-21 10:21:43 浏览: 13
在MATLAB中,你可以使用内置的图像处理函数来操作图像并添加噪声、平滑、锐化。下面是一个简化的示例,展示了如何做这些基本操作:
```matlab
% 加载图像(假设图片名为 'image.jpg')
img = imread('image.jpg');
% 添加高斯噪声
% 使用imnoise函数添加高斯噪声,例如0.05的标准差
img_noisy = imnoise(img, 'gaussian', 0.05);
% 平滑(低通滤波)
% 使用imfilter函数,比如均值滤波器(imfilter(img_noisy, ones(3) / 9, 'mean'))
% 这里用的是3x3的均值滤波核,可以根据需要调整
% 锐化(高通滤波)
% 使用imfilter同样可以进行锐化,如使用卷积核 [1 -1; -1 1] (unsharp mask)
img_sharpened = imfilter(img_noisy, [-1 0 1; -1 0 1; -1 0 1], 'conv');
% 显示原图、噪声图像、平滑后的图像和平锐化后的图像
figure;
subplot(2, 2, 1), imshow(img, []);
title('Original Image');
subplot(2, 2, 2), imshow(img_noisy, []);
title('Noisy Image (Gaussian Noise)');
subplot(2, 2, 3), imshow(imread('smoothedImage.jpg')); % 替换为实际保存的平滑图像路径
title('Smoothed Image');
subplot(2, 2, 4), imshow(img_sharpened, []);
title('Sharpened Image');
% 如果你想保存这些步骤的结果,记得保存中间结果
% imwrite(img_noisy, 'noisyImage.jpg');
% imwrite(smoothedImage, 'smoothedImage.jpg');
% imwrite(img_sharpened, 'sharpenedImage.jpg');
```
阅读全文