PSNR

PSNR是"peak signal to noise ratio"的缩写,即峰值信噪比。是一种评价图像的客观标准。它具有局限性,一般是用于最大值信号和背景噪音之间的一个工程项目。
通常在经过影像压缩之后,输出的影像都会在某种程度与原始影像不同,为了衡量经过处理后的影像品质,我们通常会参考PSNR值来衡量某个处理程序是否令人满意。
计算公式
MSE=1MN∑i=0M−1∑j=0N−1∥I(i,j)−K(i,j)∥2MSE = \frac{1}{MN}\sum_{i=0}^{M-1} \sum_{j=0}^{N-1} \rVert I(i,j) - K(i,j)\rVert^2MSE=MN1i=0M1j=0N1I(i,j)K(i,j)2
PSNR=10∗log10(MAXI2MSE)=20∗log10(MAXIMSE)PSNR = 10*log_{10}(\frac{MAX_I^2}{MSE}) = 20*log_{10}(\frac{MAX_I}{\sqrt{MSE}}) PSNR=10log10(MSEMAXI2)=20log10(MSEMAXI)
MAXI=2B−1MAX_I = 2^B - 1MAXI=2B1

公式来源维基百科。
MATLAB代码

function psnr=compute_psnr(im1,im2)
if size(im1, 3) == 3,
    im1 = rgb2ycbcr(im1);
    im1 = im1(:, :, 1);
end

if size(im2, 3) == 3,
    im2 = rgb2ycbcr(im2);
    im2 = im2(:, :, 1);
end

imdff = double(im1) - double(im2);
imdff = imdff(:);

rmse = sqrt(mean(imdff.^2));
psnr = 20*log10(255/rmse);
05-22
### Peak Signal-to-Noise Ratio (PSNR) 的概念 峰值信噪比(Peak Signal-to-Noise Ratio,简称 PSNR)是一种广泛应用于图像和视频处理中的质量评估指标。它用来衡量原始信号与经过某种处理(如压缩、传输或存储)后得到的重构信号之间的相似程度[^1]。具体来说,PSNR 表示的是最大可能功率与影响信号表示保真度的噪声功率之比,并通常以分贝(dB)为单位进行表达。 在实际应用中,PSNR 主要被用于量化有损压缩对图像或视频的影响,从而帮助评估这些媒体文件的质量损失情况[^2]。 --- ### PSNR 的计算方法 #### 数学定义 PSNR 可由以下公式计算得出: \[ PSNR = 10 \cdot \log_{10} \left( \frac{MAX_I^2}{MSE} \right) \] 其中: - \( MAX_I \) 是像素的最大可能值(对于8位灰度图像是255),代表图像的理想强度上限; - \( MSE \) (Mean Square Error,均方误差)是两个图像之间逐像素差值平方的平均值,其定义如下: \[ MSE = \frac{1}{mn} \sum_{i=0}^{m-1} \sum_{j=0}^{n-1} [I(i,j) - K(i,j)]^2 \] 这里,\( I(i,j) \) 和 \( K(i,j) \) 分别表示原始图像和处理后图像在同一位置上的像素值;\( m \times n \) 则是图像的尺寸大小。 #### Matlab 实现代码 以下是基于上述公式的 PSNR 计算实现方式,在 MATLAB 中可以通过自定义函数完成这一过程[^3]: ```matlab function psnrValue = calculatePSNR(originalImage, processedImage) % 将输入图像转换为 double 类型以便于数值运算 originalImage = im2double(originalImage); processedImage = im2double(processedImage); % 计算均方误差 (MSE) mse = mean((originalImage(:) - processedImage(:)).^2); % 如果两幅图像完全相同,则返回无穷大作为 PSNR 值 if mse == 0 psnrValue = Inf; return; end % 设定最大像素值,默认情况下假定图像已经归一化到区间 [0, 1] maxIntensity = 1; % 使用公式计算 PSNR 并返回结果 psnrValue = 10 * log10((maxIntensity ^ 2) / mse); end ``` 此代码片段展示了如何利用给定的原图和经处理后的图片来获取它们间的 PSNR 值。 --- ### 应用场景 PSNR 不仅限于理论研究领域,在多个工程实践中也发挥着重要作用。例如,在多媒体通信系统设计过程中,工程师们常借助该参数判断编码效率及其带来的画质变化;另外,在医学成像技术里,为了确保诊断精度不受后期编辑干扰,也会采用类似的手段验证最终呈现效果是否满足临床需标准[^4]。 尽管如此,值得注意的一点是虽然高 PSNR 得分会暗示较好的视觉体验,但它并不能全面反映人类主观感受下的真实观感差异。因此,在某些特定场合下还需配合其他更贴近人眼感知特性的评测工具一起分析,比如 SSIM(Structural Similarity Index Measure 结构相似性指数测量法)等补充方案共同考量整体表现水平。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值