This code not correct result the what is problem ?

1 view (last 30 days)
MSE1=mean(mean((embeddedImage-originalImage).^4));
MaxI=1;% the maximum possible pixel value of the images.
PSNR=15*log10((MaxI^2)/MSE1);
disp(PSNR);

Answers (1)

Image Analyst
Image Analyst on 27 Apr 2015
Chances are your images are uint8 and the subtraction is clipping them. Cast to double before subtracting. And I'm not sure why you're raising them to the 4th power instead of squaring them to find the Mean Square Error. Finally, you can use mean2() instead of mean(mean)).
Better yet, just use the built-in psnr() function in the Image Processing Toolbox. Or, you can use my attached function if you have an antique version of MATLAB.

Tags

Community Treasure Hunt

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

Start Hunting!