null,//double [][] interParameterDerivatives, //partial derivative matrix from subcamera-camera-goniometer to single camera (12x21) if null - just values, no derivatives
null,//double [][] interParameterDerivatives, //partial derivative matrix from subcamera-camera-goniometer to single camera (12x21) if null - just values, no derivatives
parVector,
null,//boolean [] mask, // calculate only selected derivatives (all parVect values are still
...
...
@@ -3450,8 +3472,10 @@ For each point in the image
double[][]interParameterDerivatives,//partial derivative matrix from subcamera-camera-goniometer to single camera (12x21) if null - just values, no derivatives
double[]parVect,
boolean[]mask,// calculate only selected derivatives (all parVect values are still
double[][]interParameterDerivatives,//partial derivative matrix from subcamera-camera-goniometer to single camera (12x21) if null - just values, no derivatives
double[]parVect,
boolean[]mask// calculate only selected derivatives (all parVect values are still
publicdoublebadNodeThreshold=0.1;// 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
publicintminimalValidNodes=50;// 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)
publicdoubleweightMultiExponent=1.0;
publicdoubleweightDiameterExponent=1.0;// if( >0) use grid diameter to scale weights of this image
...
...
@@ -84,6 +84,7 @@ import ij.gui.GenericDialog;
publicdoublebalanceChannelWeightsMode=-1.0;// <0 - use defaults, 0 - keep, >0 balance by number of points to this power
publicdoubleremoveOverRMS=2.0;// error is multiplied by weight function before comparison (more permissive on the borders
publicdoubleremoveOverRMSNonweighted=4.0;// error is not multiplied (no more permissions on tyhe borders
publicbooleaninvertUnmarkedLwirGrid=true;// LWIR grid currently is saved shifted (not compensating color inversion)
gd.addStringField("VNIR gain corrections",arr_to_str(this.vnir_gcorr_rbgb),100,"Fine corrections to per channel, per color gains:'r0 b0 gb0 r1 b1 gb1 ...'");
gd.addNumericField("LWIR trig dly",this.lwir_trig_dly,0,10,"x10ns","Output trigger delay, should eventually match Lepton+FPGA latency to trigger VNIR exactly 1 frame after LWIR. 0 does not work with current FPGA - usec do not match sec in transmitted timestamp");
gd.addNumericField("VNIR lag",this.vnir_lag,0,3,"","Visible camera lag (in frames) relative to LWIR one");
gd.addNumericField("EO quality",this.eo_quality,3,6,"%","Visible range camera JPEG compression quality (all channels)");
gd.addCheckbox("EO undo white balance",this.eo_scale,"Undo in-camera white balancing");
gd.addCheckbox("EO autoexposure",this.eo_autoexp,"Enable autoexposure for the visible range camera");
gd.addNumericField("EO eo_max_autoexp_ms",this.eo_max_autoexp_ms,3,6,"ms","Visible range camera maximal exposure in autoexposure mode");
gd.addNumericField("EO exposure",this.eo_exposure_ms,3,6,"ms","Visible range camera exposure time (all channels)");
gd.addCheckbox("EO white balance",this.eo_whitebal,"Enable automatic white balancing for the visible range camera");
gd.addNumericField("EO gain G",this.eo_gain_g,3,6,"","Analog gain for green channel for all visible range camera channels (normally 2.0)");
gd.addNumericField("EO gain R/G",this.eo_gain_rg,3,6,"","Red to green gain ratio for all visible range camera channels");
gd.addNumericField("EO gain B/G",this.eo_gain_bg,3,6,"","Blue to green gain ratio for all visible range camera channels");
gd.addStringField("EO gain corrections",arr_to_str(this.eo_gcorr_rbgb),100,"Fine corrections to per channel, per color gains:'r0 b0 gb0 r1 b1 gb1 ...'");
gd.addNumericField("LWIR trig dly",this.lwir_trig_dly,0,10,"x10ns","Output trigger delay, should eventually match Lepton+FPGA latency to trigger EO exactly 1 frame after LWIR. 0 does not work with current FPGA - usec do not match sec in transmitted timestamp");
gd.addNumericField("EO lag",this.eo_lag,0,3,"","Visible camera lag (in frames) relative to LWIR one");
gd.addNumericField("Max frame diff",this.max_frame_diff,0,3,"","Maximal difference in frames between simultaneously acquired channels as calculated from the timestamps");