# Image comparison

Hi:
Anyone knows of any algorithm, library, C++ class or whatever I can use to do some bitmap comparison?
Thanx,
Aritosteles

• Hi there
Do you mean by bitmap comparison that you want to know how much one bitmap resembles the other in for example percentage? If so, then I hope this code helps a bit.

This code would compare two currently 100x100 bitmaps and give you the percent of how similar they are. However, it isn't the same thing human brain performs...

// definition of both bitmaps height and width
#define BITMAPX 100
#define BITMAPY 100

// structure to contain data for one pixel
typedef struct {
float r,g,b; // color data varies for each color from 0-255
}RGB; // they are floats just for convinience

// two 100x100x24 bit bitmaps containing about to be compared images
RGB bitmap1[100][100],bitmap2[100][100];

// variables to hold number of pixels, current pixel and match so far
// and match for current pixel
float pixels=BITMAPX*BITMAPY,current_pixel=0;
float match=0,currentmatch=0;

// now we start looping through all pixels in our bitmaps comparing
// according pixels to each other
for(int posx=0;posx<BITMAPX;posx++){
for(int posy=0;posy<BITMAPY;posy++){
currentpixel++;

// this is where actual comparison takes place
// given that all three basic colors are on different axis
// match between them can be calculated using
// vector length equation
currentmatch=sqrt(pow(bitmap1[posx][posy].r-bitmap2[posx][posy].r,2)+
pow(bitmap1[posx][posy].g-bitmap2[posx][posy].g,2)+
pow(bitmap1[posx][posy].b-bitmap2[posx][posy].b,2));

match=((match*currentpixel)+currentmatch)/(currentpixel);
}
}

match=100-match/2.56;

Match should now be the similarity in percent between two bitmaps. If everything is correct, because I don't have time to test this code. And actually I doubt if this is the code you want. But maybe it is of some help.

XLoom