Calculating UACI, NPCR for 2 images
4 views (last 30 days)
Show older comments
Presently I have a problem in implementing the UACI and PSNR code for 2 images which are respectively Original & Cipher Images. I need the code for calculating it......
What would the Code? I don't have much idea about it.. Do I need to find UACI between 2 images or only 1 image will be sufficient
0 Comments
Accepted Answer
Image Analyst
on 22 Apr 2012
See my demo:
% Demo to calculate PSNR of a gray scale image.
% http://en.wikipedia.org/wiki/PSNR
% by ImageAnalyst
clc;
close all;
clearvars;
workspace;
% Read in standard MATLAB demo image.
grayImage = imread('cameraman.tif');
[rows columns] = size(grayImage);
subplot(2, 2, 1);
imshow(grayImage, []);
title('Original Grey Scale Image');
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
% Add noise to it.
noisyImage = imnoise(grayImage, 'gaussian', 0, 0.003);
subplot(2, 2, 2);
imshow(noisyImage, []);
title('Noisy Image');
% Calculate mean square error.
mseImage = (double(grayImage) - double(noisyImage)) .^ 2;
subplot(2, 2, 3);
imshow(mseImage, []);
title('MSE Image');
mse = sum(sum(mseImage)) / (rows * columns);
% Calculate PSNR (Peak Signal to noise ratio).
PSNR = 10 * log10( 256^2 / mse);
message = sprintf('The mean square error is %.2f\nThe PSNR = %.2f', ...
mse, PSNR);
msgbox(message);
% set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
After this example you should be able to use similar code to easily calculate NPCR and UACI, according to http://www.cyberjournals.com/Papers/Apr2011/05.pdf. You need both images to calculate them since they are a measure of the differences between the two images.
2 Comments
Walter Roberson
on 20 Oct 2016
Image Analyst says "After this example you should be able to use similar code to easily calculate NPCR" -- in other words, he has not given the code here, but he has given a framework that can be adapted to calculate NPCR by anyone who looks up the formula for NPCR.
More Answers (1)
Hyderkkk
on 31 Aug 2020
How do i get the NPCR and UACI of an original speech and encryption in matlab code ?
12 Comments
Walter Roberson
on 25 May 2021
This file give the relation between two encrypted images of same size and type but I need the relation between original speech and encrypted speech
Are you familiar with the encryption technique that is often called ROT13? It is a caeser cypher in which each letter in the first half of the alphabet is replaced with the letter in the corresponding position in the second half of the alphabet, and vice versa, so 'A' gets replaced with the character 13 further on (which is 'N'), and 'p' would get replaced with the character 13 earlier (which is 'c')
Now take the original image, and apply ROT13 to it. Then take the result, and apply ROT13 to that, for even stronger encryption.
Now take the relationship between that double-ROT13 encrypted image and the encryption you found using a different method. As they are both encrypted image, there should be no problem comparing the two using an algorithm that compares encrypted images, right?
... But it turns out that applying ROT13 twice always gets you back exactly the original data. Therefore the original data is itself an encrypted version of the original data... just encrypted with a very weak encryption. And so you can use your algorithm that compares two encrypted images in order to compare the original image to the version of it you encrypted some other way than double-ROT13.
See Also
Categories
Find more on Audio Processing Algorithm Design in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!