void batch_mode(){ if(pa("-config")){ ConfigFile f(*pa("-config")); int masksize = f["config.masksize"]; int thresh = f["config.threshold"]; float gamma = f["config.gammaslope"]; if(!pa("-output")){ printf("please specify output file pattern\n"); return; } grabber.init(pa("-i")); FileList fl; int maxSteps = -1; if(grabber.getType() == "file"){ fl = FileList(*pa("-input",1)); maxSteps = fl.size(); } static FileWriter w(*pa("-output")); static LocalThresholdOp t; t.setMaskSize(masksize); t.setGlobalThreshold(thresh); t.setGammaSlope(gamma); int i=0; while(maxSteps < 0 || maxSteps--){ if(maxSteps > 0){ printf("processing image %30s ......",fl[i++].c_str()); } const ImgBase *image = grabber.grab(); if(image->getFormat() != formatGray){ printf("..."); static ImgBase *grayImage = 0; ensureCompatible(&grayImage,depth8u,image->getSize(),formatGray); cc(image,grayImage); printf("..."); image = grayImage; } static ImgBase *dst = 0; printf("..."); t.apply(image,&dst); printf("..."); w.write(dst); printf("done! \n"); printf("writing image to %30s ... done\n",w.getFilenameGenerator().showNext().c_str()); } }else{ ERROR_LOG("please run with -config config-filename!"); return; } }
void init(){ int masksize = 10; int thresh = 2; float gamma = 0; if(pa("-config")){ ConfigFile f(*pa("-config")); masksize = f["config.masksize"]; thresh = f["config.threshold"]; gamma = f["config.gammaslope"]; } gui << Draw().minSize(16,12).handle("orig").label("original image") << Image().minSize(16,12).handle("prev").label("preview image") << ( VBox().label("controls") << Slider(2,200,masksize).label("mask size").out("masksize").minSize(15,2).handle("a") << FSlider(-30,40,thresh).label("threshold").out("threshold").minSize(15,2).handle("b") << FSlider(0,15,gamma).label("gamma slope").out("gamma").minSize(15,2).handle("c") << Button("next image").handle("next") << Button("stopped","running").out("loop").handle("d") << Button("no clip","clip to roi").out("clipToROI").handle("e") << Button("save params").handle("save") << Combo("region mean,tiledNN,tiledLIN").handle("algorithm").label("algorithm") << ( HBox() << Label("..ms").handle("time").label("apply time").minSize(2,3) << Fps(10).handle("fps").minSize(4,3).label("fps") ) ) << Show(); grabber.init(pa("-i")); if(grabber.getType() != "file"){ grabber.useDesired<Size>(pa("-s")); if(!pa("-color")){ grabber.useDesired(formatGray); }else{ grabber.useDesired(formatRGB); } grabber.useDesired(depth8u); } gui.registerCallback(step,"a,b,c,d,e,next,algorithm"); gui["orig"].install(new MouseHandler(mouse)); step(); }