From: Abdulhakeem Othman on
Hello ...
I have an rgb image ,classify this image to red ,green and blue.
I have selected the red and add to it a noise then concatenate them to recover to the rgb image.
I calculate the PSNR between the original rgb image and the concatenate rgb image after adding a noise to the red, but It give me three PSNR ,for red,green and blue.I want to give me one PSNR between the original rgb image and the concatenate rgb image.
If it possible I need to calculate PSNR overall.
From: ImageAnalyst on
Abdulhakeem Othman:
I'm not really in the compression field - so I'm not really sure - but
I think PSNR really only makes sense for monochrome images. There may
be color quality metrics that you can use. Failing that, I'd
calculate the average Delta E between your standard reference image
and your test image. I think this is pretty close in concept to the
PSNR, just for color instead of monochrome. Basically it gives you
the average color difference between images. To do this, convert your
two images to LAB color space:
(from URL http://www.mathworks.com/products/image/demos.html?file=/products/demos/shipping/images/ipexfabric.html)

cform = makecform('srgb2lab');
lab_image = applycform(imageArray,cform);

Then calculate deltaE = sqrt(deltaL.^2 + deltaA.^2 + deltaB.^2)/
numberOfPixels
where
deltaL = L_image1 - L_image2
deltaA = A_image1 - A_image2
deltaB = B_image1 - B_image2