计算图像的峰值信噪比PSNR以及均方根误差MSE
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简介
PSNR 是最普遍,最广泛使用的评鉴画质的客观量测法,不过许多实验结果都显示,PSNR 的分数无法和人眼看到的视觉品质完全一致,有可能PSNR 较高者看起来反而比PSNR 较低者差。
这是因为人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化(例如:人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响)。
function main()
clc; close all;
I = imread('rice.png');
I1 = imnoise(I, 'salt & pepper');
figure;
subplot(1, 2, 1); imshow(I); title('原图像');
subplot(1, 2, 2); imshow(I1); title('加噪声图像');
[PSNR, MSE] = psnr(I, I1)
% 图像峰值信噪比PSNR、均方根误差MSE
% By lyqmath
% Dalian University of Technology
% School of Mathematical Sciences
function [PSNR, MSE] = psnr(X, Y)
% 计算峰值信噪比PSNR、均方根误差MSE
% 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
if nargin<2
D = X;
else
if any(size(X)~=size(Y))
error('The input size is not equal to each other!');
end
D = X-Y;
end
MSE = sum(D(:).*D(:))/prod(size(X));
PSNR = 10*log10(255^2/MSE);
v总结
有一些方法中采用了分块计算PSNR等参数,用来得到更为有效地信息。也有的方法提出一些新的计算公式,当然这都是为了统计处图像处理前后的差异信息。
类似的,对于相近的公式,也可以如上做编码。