function [p] = psnr(im1,im2)
% psnr - compute the Peack Signal to Noise Ratio, defined by :
%       PSNR(x,y) = 10*log10( max(max(x),max(y))^2 / |x-y|^2 ).
%
%   p = psnr(x,y);


% fname1 = 'high.bmp';
% fname2 = 'bb.bmp';
% 
% im1 = imread(fname1);
% im2 = imread(fname2);

% im1 = rgb2ycbcr(im1); % převod z RGB na YCbCr
% im2 = rgb2ycbcr(im2);
 
% im1 = im1(:,:,1); % vyjmutí jasové složky
% im2 = im2(:,:,1);
 
im1 = im1(:); % converts a matrix into a monodimensional array
im2 = im2(:);

im1 = im2double(im1); %převod z unit8 na double
im2 = im2double(im2);

d = mean( mean( (im1(:)-im2(:)).^2 ) ); %jdno mean( ) je zbytečné
m1 = max( abs(im1(:)) );
m2 = max( abs(im2(:)) );
m = max(m1,m2);


p = 10*log10( m^2/d );

% disp('PSNR...');
% disp(p);

end

