峰值信噪比计算——MATLAB实现
峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)是一种用于衡量图像质量的指标。在图像处理、数字电视、视频压缩等领域有着广泛的应用。本文将介绍如何使用MATLAB实现峰值信噪比的计算。
首先,我们需要准备两张图像:原始图像和经过处理后的图像。以读取灰度图像为例,可以使用MATLAB自带的imread()
函数读取图像:
% 读取原始图像
I_original = imread('original.png');
% 读取处理后的图像
I_processed = imread('processed.png');
接下来,我们需要将图像转换为双精度格式,并将像素值缩放至[0, 1]范围内:
% 将原始图像转换为双精度格式并归一化
I_original = im2double(I_original);
% 将处理后的图像转换为双精度格式并归一化
I_processed = im2double(I_processed);
然后,我们可以使用MATLAB自带的psnr()
函数计算峰值信噪比:
% 计算峰值信噪比
psnr_value = psnr(I_original, I_processed);
% 打印结果
fprintf('PSNR = %.2f dB\n', psnr_value);
上述代码中,psnr()
函数接受两张图像作为输入,并返回它们的峰值信噪比。fprintf()
函数用于打印结果,其中%.2f
表示保留两位小数。