calculating PSNR

I have two images original image and compressed image,please tell how to calculate mean square error and psnr

 Réponse acceptée

Image Analyst
Image Analyst le 21 Mar 2012

0 votes

Did you see the formula at http://en.wikipedia.org/wiki/PSNR? Of course you can just subtract the images and use the sum() function instead of the loops, which I know you know how to do. Just make sure you use .^2 instead of ^2 because you want an element-by-element squaring. Give it a try - it's just one line of code.

3 commentaires

kash
kash le 21 Mar 2012
[M N] = size(origImg);
error = origImg - compImg;
MSE = sum(sum(error .* error)) / (M * N);
is it corect Mr.Analyst
Image Analyst
Image Analyst le 21 Mar 2012
Looks like it should be as long as origImg & compImg are floating point images and not uint8 or uint16. I was thinking of something like
MSE = mean2((single(image1) - single(image2)).^2);
kash
kash le 22 Mar 2012
Thanks MR.Analyst

Connectez-vous pour commenter.

Plus de réponses (1)

Wayne King
Wayne King le 21 Mar 2012

0 votes

The Wavelet Toolbox has a function for this, measerr()
>>doc measerr

2 commentaires

kash
kash le 21 Mar 2012
Wayne i am getting page not found,am using 2010a
Wayne King
Wayne King le 21 Mar 2012
introduced in R2010b

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by