public ConfigThresholdLocalOtsu(int regionWidth , double tuning) { this(ConfigLength.fixed(regionWidth),tuning); }
public ConfigThresholdBlockMinMax(int width , double minimumSpread, boolean down ) { this(ConfigLength.fixed(width),minimumSpread,down); }
public static <T extends ConfigThreshold>T local( ThresholdType type , int width ) { return local(type, ConfigLength.fixed(width)); }
private void setSelection( int which ) { if( which == active ) return; active = which; switch( active ) { case 0 : inputToBinary = FactoryThresholdBinary.globalOtsu(0, 255, true, GrayU8.class); break; case 1: inputToBinary = FactoryThresholdBinary.localMean(ConfigLength.fixed(10),0.95,true,GrayU8.class); break; default: throw new RuntimeException("Unknown type"); } }
private InputToBinary<GrayU8> createFilter() { int width = this.width + 3; int blockWidth = width*2+4; switch (selectedAlg) { case 0: return FactoryThresholdBinary.globalOtsu(0,255,down,GrayU8.class); case 1: return FactoryThresholdBinary.globalEntropy(0, 255, down, GrayU8.class); case 2: return FactoryThresholdBinary.localMean(ConfigLength.fixed(width),0.95,down,GrayU8.class); case 3: return FactoryThresholdBinary.localGaussian(ConfigLength.fixed(width),0.95,down,GrayU8.class); case 4: return FactoryThresholdBinary.localSauvola(ConfigLength.fixed(width),0.3f,down,GrayU8.class); case 5: return FactoryThresholdBinary.localNick(ConfigLength.fixed(width),-0.2f,down,GrayU8.class); case 6: return FactoryThresholdBinary.blockMean(ConfigLength.fixed(blockWidth),0.95,down,localBlock,GrayU8.class); case 7: return FactoryThresholdBinary.blockMinMax(ConfigLength.fixed(blockWidth),0.95,down,2,localBlock,GrayU8.class); case 8: return FactoryThresholdBinary.blockOtsu(true,ConfigLength.fixed(blockWidth),0,0.95,down,localBlock,GrayU8.class); } throw new RuntimeException("Unknown selection "+selectedAlg); }
private void setSelection( int which ) { if( which == active ) return; active = which; synchronized (lockBinarization) { switch (active) { case 0: inputToBinary = FactoryThresholdBinary.globalOtsu(0, 255, true, GrayU8.class); break; case 1: inputToBinary = FactoryThresholdBinary.localMean(ConfigLength.fixed(10), 0.95, true, GrayU8.class); break; default: throw new RuntimeException("Unknown type"); } } }
@Override protected void createDetector(boolean initializing) { if( !initializing) BoofSwingUtil.checkGuiThread(); PolylineAppControlPanel controls = (PolylineAppControlPanel)DetectPolylineApp.this.controls; PolylineControlPanel polyControls = controls.polylinePanel; minimumContourSize = ConfigLength.fixed(controls.minimumContourSize); binaryToContour.setConnectRule(controls.connectRule); synchronized (this) { switch( polyControls.whichAlgorithm ) { case 0:{ ConfigPolylineSplitMerge config = polyControls.getConfigSplitMerge(); contourToPolyline = FactoryPointsToPolyline.splitMerge(config); }break; case 1:{ ConfigSplitMergeLineFit config = polyControls.getConfigSplitMergeOld(); contourToPolyline = FactoryPointsToPolyline.splitMerge(config); }break; default: throw new RuntimeException("Egads"); } contourToPolyline.setMinimumSides(polyControls.minSides); contourToPolyline.setMaximumSides(polyControls.maxSides); contourToPolyline.setConvex(polyControls.convex); } imageThresholdUpdated(); }