MATLAB内置代码写简单图像复原SNR代码
时间: 2023-11-23 12:02:11 浏览: 85
图像复原的matlab代码
5星 · 资源好评率100%
下面是一个简单的MATLAB代码示例,用于图像的复原和计算信噪比(SNR):
```matlab
% 读入待处理的图像
im = imread('input_image.png');
% 添加高斯噪声
im_noisy = imnoise(im, 'gaussian', 0, 0.01);
% 进行图像复原
im_restored = imgaussfilt(im_noisy, 3);
% 计算信噪比
im_noise = double(im) - double(im_noisy);
im_snr = 10*log10(sum(im(:).^2) / sum(im_noise(:).^2));
% 显示原始图像、加噪声后的图像和复原后的图像
figure;
subplot(1,3,1); imshow(im); title('Original Image');
subplot(1,3,2); imshow(im_noisy); title('Noisy Image');
subplot(1,3,3); imshow(im_restored); title('Restored Image');
% 显示信噪比
disp(['SNR: ', num2str(im_snr), ' dB']);
```
在这个示例中,我们首先读入一个待处理的图像。然后,我们使用`imnoise`函数向图像中添加高斯噪声。接下来,我们使用`imgaussfilt`函数对图像进行复原。最后,我们计算信噪比,并在屏幕上显示结果。
请注意,这只是一个简单的示例代码,用于说明如何在MATLAB中进行图像复原和计算信噪比。实际上,图像复原是一个非常复杂的领域,有许多不同的方法可以使用。
阅读全文