Commit 052eebbb authored by Andrey Filippov's avatar Andrey Filippov

next snapshot (working)

parent 3357ad5b
...@@ -826,54 +826,6 @@ public class CuasMotion { ...@@ -826,54 +826,6 @@ public class CuasMotion {
} }
public static void findStrongerNeighbor(// does not modify "when"
final double [][][] target_sequence,
final boolean [][] filter5,
final boolean mark_failed,
final int tilesX) {
final int range = 2;
final int num_seq = target_sequence.length;
final int num_tiles = target_sequence[0].length;
final int tilesY = num_tiles/tilesX;
final Thread[] threads = ImageDtt.newThreadArray();
final AtomicInteger ai = new AtomicInteger(0);
for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() {
public void run() {
TileNeibs tn = new TileNeibs(tilesX, tilesY);
for (int nSeq = ai.getAndIncrement(); nSeq < num_seq; nSeq = ai.getAndIncrement()) {
for (int ntile = 0; ntile < num_tiles; ntile++) if ((target_sequence[nSeq][ntile] != null) &&
(target_sequence[nSeq][ntile][CuasMotionLMA.RSLT_FAIL] == CuasMotionLMA.FAIL_NONE)) { // &&
if (filter5[nSeq][ntile]) {
target_sequence[nSeq][ntile][CuasMotionLMA.RSLT_STRONGER] = Double.NaN;
} else { // find first stronger tile index
check_nebs: {
for (int dy = -range; dy <= range; dy++) {
for (int dx = -range; dx <= range; dx++) {
int indx = tn.getNeibIndex(ntile, dx, dy);
if ((indx >= 0) && filter5[nSeq][indx]) {
target_sequence[nSeq][ntile][CuasMotionLMA.RSLT_STRONGER] = indx;
break check_nebs;
}
}
}
System.out.println("findStrongerNeighbor(): FIXME: no selected neighbor in 5x5 vicinity, but this is not selected either. nSeq="+
nSeq+", ntile="+ntile);
target_sequence[nSeq][ntile][CuasMotionLMA.RSLT_STRONGER] = -1; // not found
}
if (mark_failed) {
target_sequence[nSeq][ntile][CuasMotionLMA.RSLT_FAIL] = CuasMotionLMA.FAIL_NEIGHBOR;
}
}
}
}
}
};
}
ImageDtt.startAndJoin(threads);
}
/* /*
public static void clearFailByStrongerNeighbor(// does not modify "when" public static void clearFailByStrongerNeighbor(// does not modify "when"
...@@ -1975,64 +1927,6 @@ public class CuasMotion { ...@@ -1975,64 +1927,6 @@ public class CuasMotion {
return frames_accum; return frames_accum;
} }
/**
* Calculate image x,y for each target half keyframe interval before the keyframe and half-interval after.
* The results are stored in yet empty fields of the target data
* It is used to filter out stray targets, these coordinates for the consecutive frames should be close:
* "after" for the earlier keyframe and "before" for the later one.
* @param targets [keyframe_number][tile][] target positions of the targets relative to the tile center and motion vectors
* @param good_only exclude failed tiles
* @param interseq_scale multiply velocity vector to get pixel offset in the middle between the two keyframes
* @param tilesX number of tiles in a row
* @param debugLevel debug level
*/
public static void getHalfBeforeAfterPixXY(
final double [][][] targets,
final boolean good_only,
final double interseq_scale,
final int tilesX,
final int debugLevel) {
final int num_seq = targets.length;
final int num_tiles = targets[0].length;
final int tileSize = GPUTileProcessor.DTT_SIZE;
final Thread[] threads = ImageDtt.newThreadArray();
final AtomicInteger ai = new AtomicInteger(0);
for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() {
public void run() {
for (int nSeq = ai.getAndIncrement(); nSeq < num_seq; nSeq = ai.getAndIncrement()) {
for (int ntile = 0; ntile < num_tiles; ntile++) {
double [] target = targets[nSeq][ntile];
if (target != null) {
if (!good_only || (target[CuasMotionLMA.RSLT_FAIL] == 0)) {
int tileX = ntile % tilesX;
int tileY = ntile / tilesX;
double xc = tileSize * tileX + tileSize/2;
double yc = tileSize * tileY + tileSize/2;
double xtk = xc + target[CuasMotionLMA.RSLT_X];
double ytk = yc + target[CuasMotionLMA.RSLT_Y];
double dx = target[CuasMotionLMA.RSLT_VX] * interseq_scale;
double dy = target[CuasMotionLMA.RSLT_VY] * interseq_scale;
// double [][] baxy = new double [2][2];
//baxy[0][0]
target[CuasMotionLMA.RSLT_BX] = xtk - dx; // before, x
target[CuasMotionLMA.RSLT_BY] = ytk - dy; // before, y
target[CuasMotionLMA.RSLT_AX] = xtk + dx; // after, x
target[CuasMotionLMA.RSLT_AY] = ytk + dy; // after, y
// pix_xy[nSeq][ntile] = baxy;
}
}
}
}
}
};
}
ImageDtt.startAndJoin(threads);
return;
}
/** /**
* Generate target images in image pane * Generate target images in image pane
...@@ -6757,19 +6651,14 @@ public class CuasMotion { ...@@ -6757,19 +6651,14 @@ public class CuasMotion {
double lma_mink = clt_parameters.imp.cuas_lma_mink; // = 0.0; // Minimal K (overshoot) <0.007 double lma_mink = clt_parameters.imp.cuas_lma_mink; // = 0.0; // Minimal K (overshoot) <0.007
double lma_maxk = clt_parameters.imp.cuas_lma_maxk; // = 5.0; // Minimal K (overshoot) > 3.8 double lma_maxk = clt_parameters.imp.cuas_lma_maxk; // = 5.0; // Minimal K (overshoot) > 3.8
double lma_a2a = clt_parameters.imp.cuas_lma_a2a; // = 0.7; // Minimal ratio of the maximal pixel to the amplitude double lma_a2a = clt_parameters.imp.cuas_lma_a2a; // = 0.7; // Minimal ratio of the maximal pixel to the amplitude
// double max_mismatch = clt_parameters.imp.cuas_max_mismatch; // 2;
/// double good_mismatch = clt_parameters.imp.cuas_good_mismatch; // 0.4;
double slow_fast_mismatch = clt_parameters.imp.cuas_slow_fast_mismatch; // 1.5; allow larger mismatch between slow and fast double slow_fast_mismatch = clt_parameters.imp.cuas_slow_fast_mismatch; // 1.5; allow larger mismatch between slow and fast
/// double match_len_pwr = clt_parameters.imp.cuas_match_len_pwr; // raise matching length to this power for calculating score
/// double seq_travel= clt_parameters.imp.cuas_seq_travel; // 3.0; // minimal diagonal of the bounding box that includes sequence to be considered "cuas_enough_seq". Filtering out atmospheric fluctuations
boolean fail_mismatch = clt_parameters. imp.cuas_fail_mismatch; // Fail on high mismatch early (when calculating scores); boolean fail_mismatch = clt_parameters. imp.cuas_fail_mismatch; // Fail on high mismatch early (when calculating scores);
double offcenter = clt_parameters. imp.cuas_offcenter;
double target_horizon= clt_parameters.imp.cuas_horizon; double target_horizon= clt_parameters.imp.cuas_horizon;
// Handling overall target scores // Handling overall target scores
double min_score_mv = clt_parameters.imp.cuas_score_mv; double min_score_mv = clt_parameters.imp.cuas_score_mv;
// double min_score_lma = clt_parameters.imp.cuas_score_lma;
double factor_lim = clt_parameters.imp.cuas_factor_lim; double factor_lim = clt_parameters.imp.cuas_factor_lim;
double factor_pow = clt_parameters.imp.cuas_factor_pow; double factor_pow = clt_parameters.imp.cuas_factor_pow;
double [] score_coeff = clt_parameters.imp.cuas_score_coeff.clone(); double [] score_coeff = clt_parameters.imp.cuas_score_coeff.clone();
...@@ -6778,8 +6667,6 @@ public class CuasMotion { ...@@ -6778,8 +6667,6 @@ public class CuasMotion {
int iter_show = clt_parameters.imp.cuas_iter_show; //1; // Maximal enhancement iteration to show intermediate result (0 - none) int iter_show = clt_parameters.imp.cuas_iter_show; //1; // Maximal enhancement iteration to show intermediate result (0 - none)
boolean intermed_low = clt_parameters.imp.cuas_intermed_low; //true; boolean intermed_low = clt_parameters.imp.cuas_intermed_low; //true;
boolean intermed_high = clt_parameters.imp.cuas_intermed_high; //true; boolean intermed_high = clt_parameters.imp.cuas_intermed_high; //true;
// boolean intermed_giga = clt_parameters.imp.cuas_intermed_giga; //false;
// boolean center_targ = clt_parameters.imp.cuas_center_targ;
double centered_radius= clt_parameters.imp.cuas_centered_radius; // 3.5; // in centered mode (target placed at [8,8] - zero out data outside peripheral areas, keep 0.5 at the radius double centered_radius= clt_parameters.imp.cuas_centered_radius; // 3.5; // in centered mode (target placed at [8,8] - zero out data outside peripheral areas, keep 0.5 at the radius
double centered_blur = clt_parameters.imp.cuas_centered_blur; // 0.5; // relative transition radius range (for 0.5 the mask inside (1-0.5) radius will be 1.0, outside (1+0.5) radius will be 0 double centered_blur = clt_parameters.imp.cuas_centered_blur; // 0.5; // relative transition radius range (for 0.5 the mask inside (1-0.5) radius will be 1.0, outside (1+0.5) radius will be 0
double duplicate_tolerance = clt_parameters.imp.cuas_duplicate_tolerance ; // 2.0; // (pix) Remove weaker maximums closer than this to a stronger one double duplicate_tolerance = clt_parameters.imp.cuas_duplicate_tolerance ; // 2.0; // (pix) Remove weaker maximums closer than this to a stronger one
...@@ -7070,14 +6957,11 @@ public class CuasMotion { ...@@ -7070,14 +6957,11 @@ public class CuasMotion {
lma_maxk, // final double lma_maxk, // = 5.0; // Minimal K (overshoot) = 3.0// final double lma_a2a, lma_maxk, // final double lma_maxk, // = 5.0; // Minimal K (overshoot) = 3.0// final double lma_a2a,
lma_a2a, // final double lma_a2a, lma_a2a, // final double lma_a2a,
0, // max_mismatch, // final double max_mismatch, apply only during final, when mismatch scores are calculated 0, // max_mismatch, // final double max_mismatch, apply only during final, when mismatch scores are calculated
/// good_mismatch, // final double good_mismatch, //do not add to score if worse slow_fast_mismatch,// final double slow_fast_mismatch, // // 1.5; allow larger mismatch between slow and fast
slow_fast_mismatch, // final double slow_fast_mismatch, // // 1.5; allow larger mismatch between slow and fast
/// match_len_pwr, // final double match_len_pwr, // 0.5; // raise matching length to this power for calculating score
/// seq_travel, // final double seq_travel,
fail_mismatch, // final boolean fail_mismatch, fail_mismatch, // final boolean fail_mismatch,
offcenter, // final double offcenter,
target_horizon, // final double lma_horizon, // horizon as maximal pixel Y target_horizon, // final double lma_horizon, // horizon as maximal pixel Y
cuasMotion.tilesX); // final int tilesX, cuasMotion.tilesX); // final int tilesX,
// int [] remain_es_centered =
getScore( getScore(
targets_new_multi, // final double [][][] target_sequence, // modifies certain fields (scores) targets_new_multi, // final double [][][] target_sequence, // modifies certain fields (scores)
factor_lim, // final double importance_limit, factor_lim, // final double importance_limit,
...@@ -7395,11 +7279,9 @@ public class CuasMotion { ...@@ -7395,11 +7279,9 @@ public class CuasMotion {
lma_maxk, // final double lma_maxk, // = 5.0; // Minimal K (overshoot) = 3.0// final double lma_a2a, lma_maxk, // final double lma_maxk, // = 5.0; // Minimal K (overshoot) = 3.0// final double lma_a2a,
lma_a2a, // final double lma_a2a, lma_a2a, // final double lma_a2a,
0, // max_mismatch, // final double max_mismatch, apply only during final, when mismatch scores are calculated 0, // max_mismatch, // final double max_mismatch, apply only during final, when mismatch scores are calculated
/// good_mismatch, // final double good_mismatch, //do not add to score if worse
slow_fast_mismatch, // final double slow_fast_mismatch, // // 1.5; allow larger mismatch between slow and fast slow_fast_mismatch, // final double slow_fast_mismatch, // // 1.5; allow larger mismatch between slow and fast
/// match_len_pwr, // final double match_len_pwr, // 0.5; // raise matching length to this power for calculating score
/// seq_travel, // final double seq_travel,
fail_mismatch, // final boolean fail_mismatch, fail_mismatch, // final boolean fail_mismatch,
offcenter, // final double offcenter,
target_horizon, // final double lma_horizon, // horizon as maximal pixel Y target_horizon, // final double lma_horizon, // horizon as maximal pixel Y
cuasMotion.tilesX); // final int tilesX, cuasMotion.tilesX); // final int tilesX,
int [] remain_es_centered = getScore( int [] remain_es_centered = getScore(
...@@ -7790,19 +7672,17 @@ public class CuasMotion { ...@@ -7790,19 +7672,17 @@ public class CuasMotion {
final double lma_maxk, // = 5.0; // Minimal K (overshoot) = 3.0 final double lma_maxk, // = 5.0; // Minimal K (overshoot) = 3.0
final double lma_a2a, final double lma_a2a,
final double max_mismatch, final double max_mismatch,
/// final double good_mismatch, // 0.4; // do not add to score if worse
final double slow_fast_mismatch, final double slow_fast_mismatch,
/// final double match_len_pwr, // 0.5; // raise matching length to this power for calculating score
/// final double seq_travel,
final boolean fail_mismatch, final boolean fail_mismatch,
final double offcenter,
final double lma_horizon, // horizon as maximal pixel Y final double lma_horizon, // horizon as maximal pixel Y
final int tilesX ) { final int tilesX ) {
// if centroid maximum is safely good, ignore lma_a2a ratio // if centroid maximum is safely good, ignore lma_a2a ratio
final double SAFE_CENT_MX = 3 * target_strength; // Find a more elegant solution final double SAFE_CENT_MX = 3 * target_strength; // Find a more elegant solution
final int num_seq = target_sequence_multi.length; final int num_seq = target_sequence_multi.length;
final int num_tiles = target_sequence_multi[0].length; final int num_tiles = target_sequence_multi[0].length;
// final double center_scale = 0.5*Math.PI/GPUTileProcessor.DTT_SIZE; // final double center_scale = 0.25*Math.PI/GPUTileProcessor.DTT_SIZE;
final double center_scale = 0.25*Math.PI/GPUTileProcessor.DTT_SIZE; final double center_scale = 0.125*Math.PI/GPUTileProcessor.DTT_SIZE/offcenter;
final int dbg_tile = -(34 + 34*80); final int dbg_tile = -(34 + 34*80);
final Thread[] threads = ImageDtt.newThreadArray(); final Thread[] threads = ImageDtt.newThreadArray();
final AtomicInteger ai = new AtomicInteger(0); final AtomicInteger ai = new AtomicInteger(0);
...@@ -7836,11 +7716,14 @@ public class CuasMotion { ...@@ -7836,11 +7716,14 @@ public class CuasMotion {
double x = lma_rslts[CuasMotionLMA.RSLT_X]; double x = lma_rslts[CuasMotionLMA.RSLT_X];
double y = lma_rslts[CuasMotionLMA.RSLT_Y]; double y = lma_rslts[CuasMotionLMA.RSLT_Y];
double cxy = 1.0; double cxy = 1.0;
if ((Math.abs(x) > 0.5*GPUTileProcessor.DTT_SIZE) || (Math.abs(y) > 0.5*GPUTileProcessor.DTT_SIZE)) { // if ((Math.abs(x) > 0.5*GPUTileProcessor.DTT_SIZE) || (Math.abs(y) > 0.5*GPUTileProcessor.DTT_SIZE)) {
if ((Math.abs(x) > offcenter*GPUTileProcessor.DTT_SIZE) || (Math.abs(y) > offcenter*GPUTileProcessor.DTT_SIZE)) {
cxy = 0.0; cxy = 0.0;
} else { } else {
double ax = Math.abs(x) - 0.25*GPUTileProcessor.DTT_SIZE; // double ax = Math.abs(x) - 0.25*GPUTileProcessor.DTT_SIZE;
double ay = Math.abs(x) - 0.25*GPUTileProcessor.DTT_SIZE; // double ay = Math.abs(y) - 0.25*GPUTileProcessor.DTT_SIZE; // was same as ax 04/09/2026
double ax = Math.abs(x) - 0.5*offcenter*GPUTileProcessor.DTT_SIZE;
double ay = Math.abs(y) - 0.5*offcenter*GPUTileProcessor.DTT_SIZE; // was same as ax 04/09/2026
if (ax > 0) { if (ax > 0) {
cxy *= Math.cos(ax * center_scale); cxy *= Math.cos(ax * center_scale);
} }
...@@ -8286,7 +8169,7 @@ public class CuasMotion { ...@@ -8286,7 +8169,7 @@ public class CuasMotion {
int corr_offset = clt_parameters.imp.cuas_corr_offset; int corr_offset = clt_parameters.imp.cuas_corr_offset;
int corr_pairs = clt_parameters.imp.cuas_corr_pairs; int corr_pairs = clt_parameters.imp.cuas_corr_pairs;
boolean half_step = clt_parameters.imp.cuas_half_step; // true; boolean half_step = clt_parameters.imp.cuas_half_step; // true;
int max_range = clt_parameters.imp.cuas_max_range; int fin_range = clt_parameters.imp.cuas_fin_range;
double [][] target_frac = new double [clt_parameters.imp.cuas_target_frac.length][2]; double [][] target_frac = new double [clt_parameters.imp.cuas_target_frac.length][2];
double good_mismatch = clt_parameters.imp.cuas_good_mismatch; // 0.4; double good_mismatch = clt_parameters.imp.cuas_good_mismatch; // 0.4;
...@@ -8452,7 +8335,7 @@ public class CuasMotion { ...@@ -8452,7 +8335,7 @@ public class CuasMotion {
0, // min_score_lma, // double min_confidence, 0, // min_score_lma, // double min_confidence,
target_horizon, // final double lma_horizon, // target below horizon target_horizon, // final double lma_horizon, // target below horizon
cuasMotion.tilesX, // final int tilesX, cuasMotion.tilesX, // final int tilesX,
max_range, // final int range, // 1 or 2 fin_range, // final int range, // 1 or 2
filter5_remain, // final int [] remain){ filter5_remain, // final int [] remain){
passes, // final int [] passes, // debugging - numer of passes required passes, // final int [] passes, // debugging - numer of passes required
1); // debugLevel); // final int debugLevel) 1); // debugLevel); // final int debugLevel)
...@@ -8463,7 +8346,7 @@ public class CuasMotion { ...@@ -8463,7 +8346,7 @@ public class CuasMotion {
filter5, // double[][] pixels, filter5, // double[][] pixels,
cuasMotion.tilesX, cuasMotion.tilesX,
cuasMotion.tilesY, cuasMotion.tilesY,
model_prefix+"-FILTER5_FINAL", // String title, model_prefix+"-FILTER5_FINAL_R"+fin_range, // String title,
slice_titles); slice_titles);
if (!batch_mode) { if (!batch_mode) {
imp_filter5_lma.show(); imp_filter5_lma.show();
......
...@@ -795,13 +795,14 @@ min_str_neib_fpn 0.35 ...@@ -795,13 +795,14 @@ min_str_neib_fpn 0.35
public int cuas_corr_offset = 20; // offset between motion detection pairs public int cuas_corr_offset = 20; // offset between motion detection pairs
public boolean cuas_gaussian_ra = true; // use gaussian temporal Gaussian instead of running average public boolean cuas_gaussian_ra = true; // use gaussian temporal Gaussian instead of running average
public int cuas_temporal_um = 100; // temporal "unsharp mask" - subtract running public int cuas_temporal_um = 100; // temporal "unsharp mask" - subtract running
public double cuas_tum_threshold = 5.0; // if >0, remove outliers frim the running average and recalculate RA public double cuas_tum_threshold = 5.0; // if >0, remove outliers from the running average and recalculate RA
public int cuas_precorr_ra = 10; // rolling average before correlation public int cuas_precorr_ra = 10; // rolling average before correlation
public int cuas_corr_step = 2; // correlation step when using rolling average public int cuas_corr_step = 2; // correlation step when using rolling average
public boolean cuas_half_step = true; // half step (=cuas_corr_offset/2) when scanning for motion public boolean cuas_half_step = true; // half step (=cuas_corr_offset/2) when scanning for motion
public int cuas_max_range = 2; // how far to extend local max: 1 3x3 neighbors, 2 - 5x5 neighbs public int cuas_max_range = 2; // how far to extend local max: 1 3x3 neighbors, 2 - 5x5 neighbs
public int cuas_fin_range = 2; // for final filtering
public int cuas_num_cycles = 25; // number of cycles of testing and removing bad targets // will get out earlier public int cuas_num_cycles = 25; // number of cycles of testing and removing bad targets // will get out earlier
public int cuas_mul_samples = 3; // multiply number of samples in slow mode public int cuas_mul_samples = 3; // multiply number of samples in slow mode
public int cuas_mul_offset = 5; // multiply correlation offset in slow mode public int cuas_mul_offset = 5; // multiply correlation offset in slow mode
...@@ -894,6 +895,8 @@ min_str_neib_fpn 0.35 ...@@ -894,6 +895,8 @@ min_str_neib_fpn 0.35
public double cuas_slow_fast_mismatch = 1.5; // allow larger mismatch between slow and fast public double cuas_slow_fast_mismatch = 1.5; // allow larger mismatch between slow and fast
public double cuas_match_len_pwr = 0.5; // raise matching length to this power for calculating score public double cuas_match_len_pwr = 0.5; // raise matching length to this power for calculating score
public double cuas_offcenter = 0.5; // maximal off-center relative to the tile size (0.5 - how it was, +/-4 pix)
public boolean cuas_fail_mismatch = false; // fail high mismatch early public boolean cuas_fail_mismatch = false; // fail high mismatch early
public boolean cuas_ignore_mismatch = false; // calculate mismatch but do not remove public boolean cuas_ignore_mismatch = false; // calculate mismatch but do not remove
...@@ -2689,6 +2692,8 @@ min_str_neib_fpn 0.35 ...@@ -2689,6 +2692,8 @@ min_str_neib_fpn 0.35
"Reduce step for motion detection = offset/2, if false = offset."); "Reduce step for motion detection = offset/2, if false = offset.");
gd.addNumericField("Local max range", this.cuas_max_range, 0,3,"", gd.addNumericField("Local max range", this.cuas_max_range, 0,3,"",
"While filtering local correlation maximums: 1 - 3x3 neighbors, 2 - 5x5 ones."); "While filtering local correlation maximums: 1 - 3x3 neighbors, 2 - 5x5 ones.");
gd.addNumericField("Local final max range", this.cuas_fin_range, 0,3,"",
"While filtering local correlation maximums: 0 - 1x1 (ignore neighbors), 1 - 3x3 neighbors, 2 - 5x5 ones.");
gd.addNumericField("Number of enhancement cycles", this.cuas_num_cycles, 0,3,"", gd.addNumericField("Number of enhancement cycles", this.cuas_num_cycles, 0,3,"",
"Number of cycles of testing and removing bad targets from compoetition with weaker neighbors."); "Number of cycles of testing and removing bad targets from compoetition with weaker neighbors.");
...@@ -2858,6 +2863,9 @@ min_str_neib_fpn 0.35 ...@@ -2858,6 +2863,9 @@ min_str_neib_fpn 0.35
gd.addNumericField("Matching length power", this.cuas_match_len_pwr, 5,8,"", gd.addNumericField("Matching length power", this.cuas_match_len_pwr, 5,8,"",
"Raise matching length to this power for calculating score."); "Raise matching length to this power for calculating score.");
gd.addNumericField("Maximal offset from the tile center", this.cuas_offcenter, 5,8,"",
"Maximal relative offset of the maximum as a fraction of ther tile size (0.5 -> +/-4 pix).");
gd.addCheckbox ("Fail mismatch early", this.cuas_fail_mismatch, gd.addCheckbox ("Fail mismatch early", this.cuas_fail_mismatch,
"Fail after score calculation if there is not match both before and after."); "Fail after score calculation if there is not match both before and after.");
gd.addCheckbox ("Ignore mismatch", this.cuas_ignore_mismatch, gd.addCheckbox ("Ignore mismatch", this.cuas_ignore_mismatch,
...@@ -4321,6 +4329,7 @@ min_str_neib_fpn 0.35 ...@@ -4321,6 +4329,7 @@ min_str_neib_fpn 0.35
this.cuas_half_step = gd.getNextBoolean(); this.cuas_half_step = gd.getNextBoolean();
this.cuas_max_range = (int) gd.getNextNumber(); this.cuas_max_range = (int) gd.getNextNumber();
this.cuas_fin_range = (int) gd.getNextNumber();
this.cuas_num_cycles = (int) gd.getNextNumber(); this.cuas_num_cycles = (int) gd.getNextNumber();
this.cuas_mul_samples = (int) gd.getNextNumber(); this.cuas_mul_samples = (int) gd.getNextNumber();
...@@ -4404,6 +4413,7 @@ min_str_neib_fpn 0.35 ...@@ -4404,6 +4413,7 @@ min_str_neib_fpn 0.35
this.cuas_good_mismatch = gd.getNextNumber(); this.cuas_good_mismatch = gd.getNextNumber();
this.cuas_slow_fast_mismatch = gd.getNextNumber(); this.cuas_slow_fast_mismatch = gd.getNextNumber();
this.cuas_match_len_pwr = gd.getNextNumber(); this.cuas_match_len_pwr = gd.getNextNumber();
this.cuas_offcenter = gd.getNextNumber();
this.cuas_fail_mismatch = gd.getNextBoolean(); this.cuas_fail_mismatch = gd.getNextBoolean();
this.cuas_ignore_mismatch = gd.getNextBoolean(); this.cuas_ignore_mismatch = gd.getNextBoolean();
...@@ -5610,6 +5620,7 @@ min_str_neib_fpn 0.35 ...@@ -5610,6 +5620,7 @@ min_str_neib_fpn 0.35
properties.setProperty(prefix+"cuas_half_step", this.cuas_half_step+""); // boolean properties.setProperty(prefix+"cuas_half_step", this.cuas_half_step+""); // boolean
properties.setProperty(prefix+"cuas_max_range", this.cuas_max_range+""); // int properties.setProperty(prefix+"cuas_max_range", this.cuas_max_range+""); // int
properties.setProperty(prefix+"cuas_fin_range", this.cuas_fin_range+""); // int
properties.setProperty(prefix+"cuas_num_cycles", this.cuas_num_cycles+""); // int properties.setProperty(prefix+"cuas_num_cycles", this.cuas_num_cycles+""); // int
properties.setProperty(prefix+"cuas_mul_samples", this.cuas_mul_samples+""); // int properties.setProperty(prefix+"cuas_mul_samples", this.cuas_mul_samples+""); // int
...@@ -5690,6 +5701,7 @@ min_str_neib_fpn 0.35 ...@@ -5690,6 +5701,7 @@ min_str_neib_fpn 0.35
properties.setProperty(prefix+"cuas_good_mismatch", this.cuas_good_mismatch+""); // double properties.setProperty(prefix+"cuas_good_mismatch", this.cuas_good_mismatch+""); // double
properties.setProperty(prefix+"cuas_slow_fast_mismatch",this.cuas_slow_fast_mismatch+"");// double properties.setProperty(prefix+"cuas_slow_fast_mismatch",this.cuas_slow_fast_mismatch+"");// double
properties.setProperty(prefix+"cuas_match_len_pwr", this.cuas_match_len_pwr+""); // double properties.setProperty(prefix+"cuas_match_len_pwr", this.cuas_match_len_pwr+""); // double
properties.setProperty(prefix+"cuas_offcenter", this.cuas_offcenter+""); // double
properties.setProperty(prefix+"cuas_fail_mismatch", this.cuas_fail_mismatch+""); // boolean properties.setProperty(prefix+"cuas_fail_mismatch", this.cuas_fail_mismatch+""); // boolean
properties.setProperty(prefix+"cuas_ignore_mismatch", this.cuas_ignore_mismatch+"");// boolean properties.setProperty(prefix+"cuas_ignore_mismatch", this.cuas_ignore_mismatch+"");// boolean
...@@ -6834,6 +6846,7 @@ min_str_neib_fpn 0.35 ...@@ -6834,6 +6846,7 @@ min_str_neib_fpn 0.35
if (properties.getProperty(prefix+"cuas_half_step")!=null) this.cuas_half_step=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_half_step")); if (properties.getProperty(prefix+"cuas_half_step")!=null) this.cuas_half_step=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_half_step"));
if (properties.getProperty(prefix+"cuas_max_range")!=null) this.cuas_max_range=Integer.parseInt(properties.getProperty(prefix+"cuas_max_range")); if (properties.getProperty(prefix+"cuas_max_range")!=null) this.cuas_max_range=Integer.parseInt(properties.getProperty(prefix+"cuas_max_range"));
if (properties.getProperty(prefix+"cuas_fin_range")!=null) this.cuas_fin_range=Integer.parseInt(properties.getProperty(prefix+"cuas_fin_range"));
if (properties.getProperty(prefix+"cuas_num_cycles")!=null) this.cuas_num_cycles=Integer.parseInt(properties.getProperty(prefix+"cuas_num_cycles")); if (properties.getProperty(prefix+"cuas_num_cycles")!=null) this.cuas_num_cycles=Integer.parseInt(properties.getProperty(prefix+"cuas_num_cycles"));
if (properties.getProperty(prefix+"cuas_mul_samples")!=null) this.cuas_mul_samples=Integer.parseInt(properties.getProperty(prefix+"cuas_mul_samples")); if (properties.getProperty(prefix+"cuas_mul_samples")!=null) this.cuas_mul_samples=Integer.parseInt(properties.getProperty(prefix+"cuas_mul_samples"));
...@@ -6915,6 +6928,7 @@ min_str_neib_fpn 0.35 ...@@ -6915,6 +6928,7 @@ min_str_neib_fpn 0.35
if (properties.getProperty(prefix+"cuas_good_mismatch")!=null) this.cuas_good_mismatch=Double.parseDouble(properties.getProperty(prefix+"cuas_good_mismatch")); if (properties.getProperty(prefix+"cuas_good_mismatch")!=null) this.cuas_good_mismatch=Double.parseDouble(properties.getProperty(prefix+"cuas_good_mismatch"));
if (properties.getProperty(prefix+"cuas_slow_fast_mismatch")!=null)this.cuas_slow_fast_mismatch=Double.parseDouble(properties.getProperty(prefix+"cuas_slow_fast_mismatch")); if (properties.getProperty(prefix+"cuas_slow_fast_mismatch")!=null)this.cuas_slow_fast_mismatch=Double.parseDouble(properties.getProperty(prefix+"cuas_slow_fast_mismatch"));
if (properties.getProperty(prefix+"cuas_match_len_pwr")!=null) this.cuas_match_len_pwr=Double.parseDouble(properties.getProperty(prefix+"cuas_match_len_pwr")); if (properties.getProperty(prefix+"cuas_match_len_pwr")!=null) this.cuas_match_len_pwr=Double.parseDouble(properties.getProperty(prefix+"cuas_match_len_pwr"));
if (properties.getProperty(prefix+"cuas_offcenter")!=null) this.cuas_offcenter=Double.parseDouble(properties.getProperty(prefix+"cuas_offcenter"));
if (properties.getProperty(prefix+"cuas_fail_mismatch")!=null) this.cuas_fail_mismatch=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_fail_mismatch")); if (properties.getProperty(prefix+"cuas_fail_mismatch")!=null) this.cuas_fail_mismatch=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_fail_mismatch"));
if (properties.getProperty(prefix+"cuas_ignore_mismatch")!=null) this.cuas_ignore_mismatch=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_ignore_mismatch")); if (properties.getProperty(prefix+"cuas_ignore_mismatch")!=null) this.cuas_ignore_mismatch=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_ignore_mismatch"));
...@@ -8074,6 +8088,7 @@ min_str_neib_fpn 0.35 ...@@ -8074,6 +8088,7 @@ min_str_neib_fpn 0.35
imp.cuas_corr_step = this.cuas_corr_step; imp.cuas_corr_step = this.cuas_corr_step;
imp.cuas_half_step = this.cuas_half_step; imp.cuas_half_step = this.cuas_half_step;
imp.cuas_max_range = this.cuas_max_range; imp.cuas_max_range = this.cuas_max_range;
imp.cuas_fin_range = this.cuas_fin_range;
imp.cuas_num_cycles = this.cuas_num_cycles; imp.cuas_num_cycles = this.cuas_num_cycles;
imp.cuas_mul_samples = this.cuas_mul_samples; imp.cuas_mul_samples = this.cuas_mul_samples;
imp.cuas_mul_offset = this.cuas_mul_offset; imp.cuas_mul_offset = this.cuas_mul_offset;
...@@ -8154,6 +8169,7 @@ min_str_neib_fpn 0.35 ...@@ -8154,6 +8169,7 @@ min_str_neib_fpn 0.35
imp.cuas_good_mismatch = this.cuas_good_mismatch; imp.cuas_good_mismatch = this.cuas_good_mismatch;
imp.cuas_slow_fast_mismatch = this.cuas_slow_fast_mismatch; imp.cuas_slow_fast_mismatch = this.cuas_slow_fast_mismatch;
imp.cuas_match_len_pwr = this.cuas_match_len_pwr; imp.cuas_match_len_pwr = this.cuas_match_len_pwr;
imp.cuas_offcenter = this.cuas_offcenter;
imp.cuas_fail_mismatch = this.cuas_fail_mismatch; imp.cuas_fail_mismatch = this.cuas_fail_mismatch;
imp.cuas_ignore_mismatch = this.cuas_ignore_mismatch; imp.cuas_ignore_mismatch = this.cuas_ignore_mismatch;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment