How to measure quality of an image?

8 views (last 30 days)
I need to find quality of an image before and after pre-processing.
For this, i need to calculate PSNR (Peak Signal to Noise Ratio), MSE (Mean Square Error),MAXERR (Maximum Squared Error) and L2RAT (Ratio of Squared Norms)
X = imread('africasculpt.jpg');
Xapp = X;
Xapp(X<=100) = 1;
[psnr,mse,maxerr,L2rat] = measerr (X,Xapp)
figure;
subplot(1,2,1); image(X);
subplot(1,2,2); image(Xapp);
This is the program that i got in Help menu in matlab.
However it is showing an error. Can anyone help me in this......
  4 Comments
Image Analyst
Image Analyst on 2 Jun 2014
That is not the full error message! Geoff asked you for the error message and instead you snipped out a small part of it. Importantly, you forgot to include the actual error message - you only included the line numbers. So while we know something went wrong with those lines of code, we don't know what. Please copy and paste ALL THE RED TEXT, not just part of it, if you want help.
Preeti Mistry
Preeti Mistry on 3 Jun 2014
??? Out of memory. Type HELP MEMORY for your options.
Error in ==> measerr at 35
B = Xapp.*Xapp;
Error in ==> maculaedema at 17
[PSNR , MSE , MAXERR , L2RAT] = measerr(X , Xapp)
This is all that is shown as an error.....

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 31 May 2014
Edited: Image Analyst on 31 May 2014
There are psnr() and ssim() functions for image quality in the Image Processing Toolbox. If you don't have a recent version, I have some code you can use in older versions in the attached file.
  5 Comments
nithya b
nithya b on 24 Aug 2020
my first question is whether quality of image can be identifed for single image? first one i want to get quality of image before preprocessing (aquired from sensor) and second one is after pre-processing.
my second doubt is when calculating psnr value it is asking for two images as input image one is destImg and the other is original image. i have two images one is the output of median filter of my input fingerprint image and then mean filter of input fingerprint image. So here i want to know which output gives better psnr. so i gave as psnr(medianfilteroutput, meanfilteroutput). got psnr value of 24.69. is this correct way of finding psnr value? if correct shall i assume this psnr is for medianfilter?
if it is wrong how to find correct psnr of a method's output? how to compare two methods' output?

Sign in to comment.

More Answers (2)

pranay yadav
pranay yadav on 23 Feb 2017
What is the Formula MAXER and L2RAT

remos remos
remos remos on 9 Jan 2015
in the same subject I work on the mosaic of images with two different method So I have two different results. Visually a method from the two gives good result I want to compare the quality of both results and conclude one that gives good results and I don't know how to use your code to get that

Community Treasure Hunt

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

Start Hunting!