publicdoubleweightBad=0.3;// reduce contrast of bad nodes
publicdoubleweightBad=0.3;// reduce contrast of bad nodes
publicdoubleweightWorst=0.05;// reduce contrast of bad, local worst nodes
publicdoubleweightWorst=0.05;// reduce contrast of bad, local worst nodes
publicdoublebadNodeThreshold=0.1;// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
publicdoublebadNodeThreshold=0.1;// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
publicdoublebadNodeThresholdLWIR=0.2;// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
publicintmaxBadNeighb=1;// maximal number of bad nodes around the corrected one to fix
publicintmaxBadNeighb=1;// maximal number of bad nodes around the corrected one to fix
publicintminimalValidNodes=10;// do not use images with less than this number of non-zero nodes (after all applicable weight masks)
publicintminimalValidNodes=10;// do not use images with less than this number of non-zero nodes (after all applicable weight masks)
publicintweightMultiImageMode=1;// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set to weightMultiExponent power)
publicintweightMultiImageMode=1;// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set to weightMultiExponent power)
...
@@ -353,6 +354,7 @@ import ij.gui.GenericDialog;
...
@@ -353,6 +354,7 @@ import ij.gui.GenericDialog;
doubleweightBad,
doubleweightBad,
doubleweightWorst,
doubleweightWorst,
doublebadNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
doublebadNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
doublebadNodeThresholdLWIR,// same for the low-res sensors
intmaxBadNeighb,// maximal number of bad nodes around the corrected one to fix
intmaxBadNeighb,// maximal number of bad nodes around the corrected one to fix
intminimalValidNodes,
intminimalValidNodes,
intweightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
intweightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
...
@@ -394,6 +396,7 @@ import ij.gui.GenericDialog;
...
@@ -394,6 +396,7 @@ import ij.gui.GenericDialog;
weightBad,
weightBad,
weightWorst,
weightWorst,
badNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
badNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
badNodeThresholdLWIR,// same for the low-res sensors
maxBadNeighb,// maximal number of bad nodes around the corrected one to fix
maxBadNeighb,// maximal number of bad nodes around the corrected one to fix
minimalValidNodes,
minimalValidNodes,
weightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
weightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
...
@@ -435,6 +438,7 @@ import ij.gui.GenericDialog;
...
@@ -435,6 +438,7 @@ import ij.gui.GenericDialog;
doubleweightBad,
doubleweightBad,
doubleweightWorst,
doubleweightWorst,
doublebadNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
doublebadNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
doublebadNodeThresholdLWIR,// same for the low-res sensors
intmaxBadNeighb,// maximal number of bad nodes around the corrected one to fix
intmaxBadNeighb,// maximal number of bad nodes around the corrected one to fix
intminimalValidNodes,
intminimalValidNodes,
intweightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
intweightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
...
@@ -475,6 +479,7 @@ import ij.gui.GenericDialog;
...
@@ -475,6 +479,7 @@ import ij.gui.GenericDialog;
weightBad,
weightBad,
weightWorst,
weightWorst,
badNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
badNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
badNodeThresholdLWIR,// same for the low-res sensors
maxBadNeighb,// maximal number of bad nodes around the corrected one to fix
maxBadNeighb,// maximal number of bad nodes around the corrected one to fix
minimalValidNodes,
minimalValidNodes,
weightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
weightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
...
@@ -516,6 +521,7 @@ import ij.gui.GenericDialog;
...
@@ -516,6 +521,7 @@ import ij.gui.GenericDialog;
doubleweightBad,
doubleweightBad,
doubleweightWorst,
doubleweightWorst,
doublebadNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
doublebadNodeThreshold,// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
doublebadNodeThresholdLWIR,// same for the low-res sensors
intmaxBadNeighb,// maximal number of bad nodes around the corrected one to fix
intmaxBadNeighb,// maximal number of bad nodes around the corrected one to fix
intminimalValidNodes,
intminimalValidNodes,
intweightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
intweightMultiImageMode,// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
...
@@ -544,6 +550,7 @@ import ij.gui.GenericDialog;
...
@@ -544,6 +550,7 @@ import ij.gui.GenericDialog;
this.weightBad=weightBad;
this.weightBad=weightBad;
this.weightWorst=weightWorst;
this.weightWorst=weightWorst;
this.badNodeThreshold=badNodeThreshold;// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
this.badNodeThreshold=badNodeThreshold;// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
this.badNodeThresholdLWIR=badNodeThresholdLWIR;// same for the low-res sensors
this.maxBadNeighb=maxBadNeighb;// maximal number of bad nodes around the corrected one to fix
this.maxBadNeighb=maxBadNeighb;// maximal number of bad nodes around the corrected one to fix
this.minimalValidNodes=minimalValidNodes;
this.minimalValidNodes=minimalValidNodes;
this.weightMultiImageMode=weightMultiImageMode;// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
this.weightMultiImageMode=weightMultiImageMode;// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
...
@@ -612,6 +619,7 @@ import ij.gui.GenericDialog;
...
@@ -612,6 +619,7 @@ import ij.gui.GenericDialog;
destination.weightBad=source.weightBad;
destination.weightBad=source.weightBad;
destination.weightWorst=source.weightWorst;
destination.weightWorst=source.weightWorst;
destination.badNodeThreshold=source.badNodeThreshold;// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
destination.badNodeThreshold=source.badNodeThreshold;// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
destination.badNodeThresholdLWIR=source.badNodeThresholdLWIR;// filter out grid nodes with difference from quadratically predicted from 8 neighbors in pixels
destination.maxBadNeighb=source.maxBadNeighb;// maximal number of bad nodes around the corrected one to fix
destination.maxBadNeighb=source.maxBadNeighb;// maximal number of bad nodes around the corrected one to fix
destination.weightMultiImageMode=source.weightMultiImageMode;// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
destination.weightMultiImageMode=source.weightMultiImageMode;// increase weight for multi-image sets (0 - do not increase, 1 - multiply by number of images in a set)
gd.addNumericField("Scale weight of bad, locally worst nodes",this.weightWorst,3,6,"");
gd.addNumericField("Scale weight of bad, locally worst nodes",this.weightWorst,3,6,"");
gd.addNumericField("Filter out grid nodes with difference from quadratically predicted from 8 neighbors",this.badNodeThreshold,2,6,"pix");
gd.addNumericField("Filter out grid nodes with difference from quadratically predicted from 8 neighbors",this.badNodeThreshold,2,6,"pix");
gd.addNumericField("Same for the low-res (LWIR) sensors",this.badNodeThresholdLWIR,2,6,"pix");
gd.addNumericField("Maximal number of bad nodes around the corrected one to fix",this.maxBadNeighb,0);
gd.addNumericField("Maximal number of bad nodes around the corrected one to fix",this.maxBadNeighb,0);
gd.addNumericField("Minimal number of valid (with all filters applied) nodes in each image",this.minimalValidNodes,0);
gd.addNumericField("Minimal number of valid (with all filters applied) nodes in each image",this.minimalValidNodes,0);
gd.addNumericField("Increase weight of the multi-image sets (0 - do not increase, 1 - multiply by number of images in a set (to power ), 2 - same but remove single-image ",this.weightMultiImageMode,0);
gd.addNumericField("Increase weight of the multi-image sets (0 - do not increase, 1 - multiply by number of images in a set (to power ), 2 - same but remove single-image ",this.weightMultiImageMode,0);