!7 // uses only one prototype image // goes through different granularities at once cmodule ImageRecogSpike { S prototypeImageID = #1102884; S inputImageID = #1102883; transient L widths = ll(32, 64, 128); transient new L integralImages; transient BWIntegralImage baseImage; transient JTabbedPane tabs = jTabbedPane(); transient BWImage prototypeImage; class OneLevel extends SteppableAndBest { public bool step() { false; // done } } start-thread { if (baseImage == null) baseImage = BWIntegralImage(loadImage2(inputImageID)); if (prototypeImage == null) prototypeImage = loadBWImage(prototypeImageID); for (int w : widths) { IBWIntegralImage ii = scaledIBWIntegralImage(baseImage, w); integralImages.add(ii); addTab(tabs, "w=" + w, jFullCenter(jPixelatedZoomedImageSurface( doubleRatio(baseImage.getWidth(), w), iBWIntegralImageToBWImage(ii)))); } addTab(tabs, "Prototype", jFullCenter(imageSurface(prototypeImage))); } visual tabs; }