uaci score of 2 images
2 views (last 30 days)
Show older comments
I need to find the uaci score of two images, one the plain image and other image which is 1 pixel value changed in the plain image. I used the below code and always gets zero. Please help me with the code.
uaci_sum=0; var = 0;
for i=1:256
for j=1:256
var1 = o(i,j);
var2 = oc(i,j);
dif = minus(var1,var2);
diff = abs(dif);
div = diff/255;
uaci_sum = uaci_sum+div;
end
end
uaciscore=(uaci_sum/65536)*100;
Here o and oc are two images and the pixel value change in oc is at (2,8). And also whether there is any problem that the image matrices are of uint8?
0 Comments
Answers (1)
Walter Roberson
on 10 Oct 2017
Yes, the problem is that they are uint8. Subtracting a larger uint8 from a smaller one always gives 0, not a negative number.
You should replace
dif = minus(var1,var2);
diff = abs(dif);
div = diff/255;
with
div = (max(var1,var2) - min(var1,var2)) / 255;
or with
div = abs(double(var1) - double(var2)) / 255;
6 Comments
aaru sri
on 17 May 2019
Can i use sprintf('%.2f%%', uaciscore * 10000) in my code as my UACIscore is coming as 1.149195374426213e-05
Walter Roberson
on 17 May 2019
sprintf('%.2f%c', uaciscore * 10000, 8241)
This use the character ‱ https://www.fileformat.info/info/unicode/char/2031/index.htm which is the per-10000 symbol.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!