MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]如何计算图像压缩后的MSE和PSNR? (https://www.labfans.com/bbs/showthread.php?t=6101)

qinyonglyz 2009-01-01 14:41

[求助]如何计算图像压缩后的MSE和PSNR?
 
对一幅图压缩后,如何用Matlab编程计算压缩恢复后的图片与原始图片比对的MSE(均方差)和PSNR(峰值信噪比)?
MSE = E( (img-Eimg)^2 ) = SUM((img-Eimg)^2)/(M*N);
PSNR=10log10(255^2/MSE);

283044290 2009-01-03 10:06

回复: [求助]如何计算图像压缩后的MSE和PSNR?
 
function PSNR = psnr(f1, f2)
%计算两幅图像的峰值信噪比

k = 8; %k为图像是表示地个像素点所用的二进制位数,即位深。
fmax = 2.^k - 1;
a = fmax.^2;
e = double(f1) - double(f2);
[m, n] = size(e);
b = sum(e(:).^2);
PSNR = 10*log(m*n*a/b);

function ERMS = erms(f1, f2)
%计算f1和f2均方根误差

e = double(f1) - double(f2);
[m, n] = size(e);
ERMS = sqrt(sum(e(:).^2)/(m*n));

283044290 2009-01-03 10:07

回复: [求助]如何计算图像压缩后的MSE和PSNR?
 
%k为图像中表示一个像素点所用的二进制位数,即位深。

bjxiaohua 2009-03-09 17:57

回复: [求助]如何计算图像压缩后的MSE和PSNR?
 
这条语句e = double(f1) - double(f2);是表明f1和f2大小必须相等吗?

silas_xue 2009-03-10 00:42

回复: [求助]如何计算图像压缩后的MSE和PSNR?
 
lz 你的"表明f1和f2大小必须相等吗?"是什么意思 如果两者相等了 还计算什么e啊 PSNR就是无穷大了 你的压缩就是现在最先进的了 O(∩_∩)O~


所有时间均为北京时间。现在的时间是 12:30

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.