峰值信噪比评估高光谱图像去噪代码matlab
时间: 2024-04-08 22:27:41 浏览: 188
matlab 峰值信噪比代码
峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)是一种常用的评估图像质量指标,用于衡量原始图像与去噪后图像之间的相似度。在高光谱图像去噪中,可以使用PSNR来评估去噪算法的效果。
以下是一个使用MATLAB编写的高光谱图像去噪代码示例:
```matlab
% 读取原始图像
originalImage = imread('original_image.png');
% 添加高斯噪声
noisyImage = imnoise(originalImage, 'gaussian', 0, 0.01);
% 高光谱图像去噪算法(这里以均值滤波为例)
denoisedImage = imfilter(noisyImage, fspecial('average', [3 3]));
% 计算峰值信噪比
mse = mean((originalImage(:) - denoisedImage(:)).^2);
psnr = 10 * log10((255^2) / mse);
% 显示结果
subplot(1, 3, 1), imshow(originalImage), title('原始图像');
subplot(1, 3, 2), imshow(noisyImage), title('添加噪声后的图像');
subplot(1, 3, 3), imshow(denoisedImage), title(['去噪后的图像 (PSNR = ' num2str(psnr) ' dB)']);
```
这段代码首先读取原始图像,然后添加高斯噪声。接下来使用均值滤波算法对噪声图像进行去噪处理。最后,计算去噪后图像与原始图像之间的均方误差(Mean Squared Error,MSE),并通过PSNR公式计算峰值信噪比。最后,将原始图像、添加噪声后的图像和去噪后的图像显示在一个图像窗口中,并在标题中显示PSNR值。
阅读全文