calculating PSNR

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

 Accepted Answer

Image Analyst
Image Analyst on 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 Comments

kash
kash on 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 on 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 on 22 Mar 2012
Thanks MR.Analyst

Sign in to comment.

More Answers (1)

Wayne King
Wayne King on 21 Mar 2012
The Wavelet Toolbox has a function for this, measerr()
>>doc measerr

2 Comments

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

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!