image - Java - What is the explanation of this code? -


i have following code:

for (int = 0; < height1; i++) {   (int j = 0; j < width1; j++) {     int rgb1 = img1.getrgb(i, j);     int rgb2 = img2.getrgb(i, j);     int r1 = (rgb1 >> 16) & 0xff;     int g1 = (rgb1 >>  8) & 0xff;     int b1 = (rgb1      ) & 0xff;     int r2 = (rgb2 >> 16) & 0xff;     int g2 = (rgb2 >>  8) & 0xff;     int b2 = (rgb2      ) & 0xff;     diff += math.abs(r1 - r2);     diff += math.abs(g1 - g2);     diff += math.abs(b1 - b2);   } } double n = width1 * height1 * 3; double p = diff / n / 255.0; system.out.println("diff percent: " + (p * 100.0)); 

the code used find percentage of difference between images, don’t know why percentage divided “n” , “255.0”

thanks

each pixel consists of 3 color components:

  • r - red color component
  • g - green color component
  • b - blue color component

each of these color components represented single byte - is, 8 bits. maximum value can represented byte 255.

so in order compute difference in percent, compute sum of differences of color components of pixels, , divide sum...

  • by number of pixels, obtain average difference per pixel
  • by 3, obtain average difference per color component
  • by 255, obtain value between 0.0 , 1.0 can converted percent value

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -