MATLAB: How to compute three values of PSNR one for each channel, using RGB image

Image Processing Toolboxpsnr of rgb images

I want to compute PSNR of a watermarked RGB image and original RGB Image. Please help it's for my project.

Best Answer

Split the image up into different color channels and use psnr() on each channel:
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
% Extract also for watermarked image, then compute PSNR:
psnrRed = pnr(redChannel, redChannelWatermarked);
psnrGreen = pnr(greenChannel , greenChannelWatermarked);
psnrBlue = pnr(blueChannel , blueChannelWatermarked);