title: Image Comparison Techniques with Java
body: <p>I'm looking for several methods to compare two images to see how similar they are. Currently I plan to have percentages as the 'similarity index' end-result. My program outline is something like this:</p>
  
  <ol>
  <li>User selects 2 images to compare.</li>
  <li>With a button, the images are compared using several different methods.</li>
  <li>At the end, each method will have a percentage next to it indicating how similar the images are based on that method.</li>
  </ol>
  
  <p>I've done a lot of reading lately and some of the stuff I've read seems to be incredibly complex and advanced and not for someone like me with only about a year's worth of Java experience. So far I've read about:</p>
  
  <ul>
  <li><p><strong>The Fourier Transform</strong> - im finding this rather confusing to implement in Java, but apparently the Java Advanced Imaging API has a class for it. Though I'm not sure how to convert the output to an actual result</p></li>
  <li><p><strong>SIFT algorithm</strong> - seems incredibly complex</p></li>
  <li><p><strong>Histograms</strong> - probably the easiest out of all mentioned so far</p></li>
  <li><p><strong>Pixel grabbing</strong> - seems viable but if theres a considerable amount of variation between the two images it doesn't look like it's going to produce any sort of accurate result. I might be wrong?</p></li>
  </ul>
  
  <p>I also have the idea of pre-processing an image using a Sobel filter first, then comparing it. Problem is the actual comparing part.</p>
  
  <p>So yeah I'm looking to see if anyone has ideas for comparing images in Java. Hoping that there are people here that have done similar projects before. I just want to get some input on viable comparison techniques that arent too hard to implement in Java.</p>
  
  <p>Thanks in advance</p>