用MATLAB给图片加入噪声再锐化,举个例子
时间: 2024-11-09 11:26:30 浏览: 7
冈萨雷斯数字图像处理MATLAB版图片
在MATLAB中,可以使用内置函数对图像添加噪声并随后进行锐化处理。这里以常见的高斯噪声和双边滤波+锐化为例:
首先,导入一张图片,比如`img = imread('peppers.png');`。
1. 添加高斯噪声:
```matlab
% 定义噪声标准差
sigma = 0.1;
% 创建一个与原图相同尺寸的零矩阵
noisy_img = img + sigma * randn(size(img));
```
这会在图像上添加随机的高斯分布噪声,`randn(size(img))`生成对应大小的正态分布随机数。
2. 高级去噪(双边滤波):
```matlab
% 设定滤波半径和梯度阈值
radius = 3; % 可自定义调整
sigma_color = 20; % 颜色空间方差
sigma_space = 5; % 空间域方差
filtered_img = imfilter(noisy_img, fspecial('bilateral', radius, sigma_color, sigma_space), 'replicate');
```
双边滤波会保留边缘信息同时平滑噪声。
3. 锐化处理:
```matlab
% 使用unsharp mask(锐化)技术增强细节
sharpened_img = imsharpen(filtered_img);
```
`imsharpen()`函数应用了锐化操作,通常会使图像边缘更明显。
最后,你可以通过`imshow([noisy_img, filtered_img, sharpened_img])`显示原始、去噪和锐化后的三张图片,比较效果。
阅读全文