计算高斯滤波器去噪效果的MATLAB代码
时间: 2023-12-09 21:07:07 浏览: 42
以下是使用MATLAB实现高斯滤波器去噪的代码:
```matlab
% 读入待处理图像
img = imread('lena.jpg');
% 添加高斯噪声
img_noisy = imnoise(img,'gaussian',0,0.01);
% 显示原始图像和带噪声的图像
figure;
subplot(1,2,1);imshow(img);title('Original Image');
subplot(1,2,2);imshow(img_noisy);title('Noisy Image');
% 定义高斯滤波器
G = fspecial('gaussian',[5 5],2);
% 对图像进行高斯滤波
img_filtered = imfilter(img_noisy,G,'same');
% 显示去噪后的图像
figure;
subplot(1,2,1);imshow(img_noisy);title('Noisy Image');
subplot(1,2,2);imshow(uint8(img_filtered));title('Filtered Image');
```
在上述代码中,我们首先读入待处理的图像,然后使用imnoise函数为图像添加高斯噪声。接下来,我们使用fspecial函数定义一个高斯滤波器,其中[5 5]表示滤波器的大小,2表示滤波器的标准差。最后,我们使用imfilter函数对带噪声的图像进行滤波操作,得到去噪后的图像。
相关问题
计算高斯滤波器去噪的结构相似性指数SSIM的MATLAB代码
下面是计算高斯滤波器去噪的结构相似性指数SSIM的MATLAB代码:
```matlab
% 读取图像
img = imread('lena.jpg');
% 添加高斯噪声
noise_img = imnoise(img, 'gaussian', 0, 0.01);
% 高斯滤波器去噪
sigma = 1.5; % 高斯核标准差
filter_size = 5; % 高斯核大小
gaussian_filter = fspecial('gaussian', filter_size, sigma);
denoise_img = imfilter(noise_img, gaussian_filter);
% 计算 SSIM
[ssimval, ssimmap] = ssim(denoise_img, img);
% 显示结果
figure;
subplot(2,2,1);
imshow(img);
title('原始图像');
subplot(2,2,2);
imshow(noise_img);
title('添加高斯噪声后的图像');
subplot(2,2,3);
imshow(denoise_img);
title('高斯滤波器去噪后的图像');
subplot(2,2,4);
imshow(ssimmap);
title(['SSIM指数:', num2str(ssimval)]);
```
使用这个代码可以对图像进行高斯滤波器去噪,并且计算出结构相似性指数SSIM,最后显示结果图像和SSIM指数。
计算高斯滤波器去噪的平滑度指标的MATLAB代码
好的,以下是MATLAB代码:
```matlab
% 定义高斯滤波器大小和标准差
filter_size = 5;
sigma = 2;
% 生成高斯滤波器
filter = fspecial('gaussian', filter_size, sigma);
% 读入图像
img = imread('lena.png');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
% 对添加噪声的图像进行滤波
filtered_img = imfilter(noisy_img, filter, 'replicate');
% 计算平滑度指标
smoothness = sum(sum(abs(filtered_img - noisy_img))) / numel(img);
% 显示结果图像和平滑度指标
subplot(1, 2, 1);
imshow(noisy_img);
title('Noisy Image');
subplot(1, 2, 2);
imshow(filtered_img);
title(['Filtered Image (Smoothness: ', num2str(smoothness), ')']);
```
其中,`sum`函数用于计算图像的差值之和,`numel`函数用于计算图像的像素数。在计算平滑度指标时,我们可以利用滤波后的图像和添加噪声的图像之间的差值,除以图像的像素数得到平均值。这个平均值越小,说明滤波后的图像越平滑,平滑度指标越高。在显示结果图像时,我们可以将平滑度指标显示在标题中。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)