This code not correct result the what is problem ?

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)

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

Asked:

on 27 Apr 2015

Answered:

on 27 Apr 2015

Community Treasure Hunt

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

Start Hunting!