In many cases you can get a good image matching result without doing any feature extraction but instead relying on a method that counts the number of pixel matches and normalizes by the total number of nonzero pixels (a 1 minus correlation distance metric). That attached link points to a publication that proposes one type of such a method which can be used as a distance metric for binary images. Two additional layers of logic I have used successfully are to allow two images to translate relative to each other and generate the distance metric for each offset and use the maximum, and to blur each binary image prior to matching to give "partial credit" to nearby nonzero pixels. The attached matlab code is something I wrote a while ago to do just this. It hasn't been exhaustively tested but it worked well for my data set and may be a good starting point for you. If false alarms are a concern then this method may not do as well as an approach which does more of a shape matching than a pixel matching. I use the described distance metric to support image clustering.