File Exchange

image thumbnail


version (2.34 KB) by John T. McCarthy
This function displays the PSNR (peak signal-to-noise ratio) between two images.


Updated 04 Feb 2008

View License

This function displays the PSNR (peak signal-to-noise ratio) between two images. The answer is in decibels (dB).

PSNR is very common in image processing. A sample use is in the comparison between an original image and a coded/decoded image. Typical quoted PSNR figures are in the range +25 to +35dB.

The syntax for this file is PSNR(A,B), where A and B are MATLAB Intensity Images, with matrix-elements in the interval [0,1]

The function can be adapted for images with 256 gray levels.

Comments and Ratings (39)

Is the result can be exported to excel file ?


Nora (view profile)



priya das

Can any one pls mail me the code to plot the graph between bit per pixel and mail id is


Sugel (view profile)

ray mand

ray mand


hbu  (view profile)


bigforg ‡

Aon S.

Muhammad Naveed Ahmed

Excellent and thanks

himanshu sharma


Luren Jia

img1 = im2double(imread('img1.bmp'));
img2 = im2double(imread('img2.bmp'));

PSNR = 10*log10(1/mean((img1(:)-img2(:)).^2));

compare mine coding with yours which one is correct?

Tiandi Duan

burepalli venkata srinivasarao

i want the psnr mat lab code

liu qiang

prabhat srivastava

justin lee

good thank u

weiss Pierre

I don't have time to do something better, but rather use that code, which may not be perfect, but which is already more general :

%function [SNR,MSE]=PSNR(u0,u)
function [SNR,MSE]=PSNR(u0,u)




weiss Pierre

Very poor implementation. It just works for images, peak is fixed to one. Rather than max(max(A)), the author should prefer max(A(:)) which works for images in any dimension.

Ramraj Pandey

good... we calculate PSNR with signals normalized.

ichi maeda

This PSNR is not accurate!!
Peak is always fixed at 1.

sankar kumar

its nice

jameer iqbal

bassem sheta

what if the two images are not between [0,1]

Feng Yang


Jeny Rajan

Simple and fast


easy to understand and implement. good idea to can this.

Michael Kleder

Nice. Well commented.

jonathan haffarei

very simple and effective


Din bhari

I highly Apprciate it

Wei Ting

3 PSNR values are shown.
Are they the PSNR of YUV or RGB?

susette dayanghirang

Joel Schaere

This is Ok, not perfect, but suitable for use

taufiq FEBRIAN

febrian taufiq

Shaikh Hussain


Made provision for images with 256 gray levels.

Improved some code, to prevent M-Lint messages in MATLAB's Code Metrics.

modifying description

MATLAB Release Compatibility
Created with R2006a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Inspired: mmvn_toolkit, PSNR for RGB images

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.

Learn About Live Editor