!752

lib 1003721 // lookup
lib 1003724 // commons io
lib 1003727 // commons lang
lib 1003729 // jhlabs filters

import com.github.axet.lookup.*;
import com.github.axet.lookup.common.GFirst;
import com.github.axet.lookup.common.GPoint;
import com.github.axet.lookup.common.ImageBinaryGreyScale;

p {
  unzipSnippet("#1003720", programDir());
  
  File dir = getProgramFile("lookup-examples");
  
  BufferedImage image = loadBufferedImage(new File(dir, "desktop.png"));
  BufferedImage templateSmall = loadBufferedImage(new File(dir, "desktop_feature_small.png"));
  BufferedImage templateBig = loadBufferedImage(new File(dir, "desktop_feature_big.png"));

  LookupScale s = new LookupScale(0.2f, 10, 0.65f, 0.95f);

  ImageBinaryGreyScale si = new ImageBinaryGreyScale(image);

  ImageBinaryGreyScale stBig = new ImageBinaryGreyScale(templateBig);
  ImageBinaryGreyScale stSmall = new ImageBinaryGreyScale(templateSmall);

  twice { time {
    print("big");
    {
        List<GPoint> pp = (L) s.lookupAll(si, stBig);
  
        Collections.sort(pp, new GFirst());
  
        for (GPoint p : pp) {
            System.out.println(p);
        }
    }
  }}

  twice { time {
    print("small");
    {
        List<GPoint> pp = (L) s.lookupAll(si, stSmall);
  
        Collections.sort(pp, new GFirst());
  
        for (GPoint p : pp) {
            System.out.println(p);
        }
    }
  }}

  print("big");
  twice { time {
      List<GPoint> pp = (L) s.lookupAll(si, stBig);

      Collections.sort(pp, new GFirst());

      for (GPoint p : pp) {
          System.out.println(p);
      }
  }}

}