uaci score of 2 images
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Walter Roberson
2017-10-10
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 个评论
aaru sri
2019-5-17
Can i use sprintf('%.2f%%', uaciscore * 10000) in my code as my UACIscore is coming as 1.149195374426213e-05
Walter Roberson
2019-5-17
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.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!