필터 지우기
필터 지우기

uaci score of 2 images

조회 수: 3 (최근 30일)
SNEHA P S
SNEHA P S 2017년 10월 10일
댓글: Walter Roberson 2019년 5월 17일
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?

답변 (1개)

Walter Roberson
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
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
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!

Translated by