doublelma_rrms2=clt_parameters.imp.cuas_lma_rrms2;// = 0.15; // Maximal relative to A rms. OK is when (RMS < cuas_lma_arms) || (RMS < cuas_lma_rrms * A)
doublelma_rrms2=clt_parameters.imp.cuas_lma_rrms2;// = 0.15; // Maximal relative to A rms. OK is when (RMS < cuas_lma_arms) || (RMS < cuas_lma_rrms * A)
doublelma_mina2=clt_parameters.imp.cuas_lma_mina2;// = 1.0; // Minimal A (amplitude)
doublelma_mina2=clt_parameters.imp.cuas_lma_mina2;// = 1.0; // Minimal A (amplitude)
if(debugLevel>-4){
if(debugLevel>-4){
...
@@ -8253,8 +8271,67 @@ public class CuasMotion {
...
@@ -8253,8 +8271,67 @@ public class CuasMotion {
}
}
// second pass, using non-centered targets
// second pass, using non-centered targets
// optionally trim pass-one targets
if(trim_first>0){
if(debugLevel>-4){
System.out.println("Will trim Phase One (noncentered) data to keep not more than "+clt_parameters.imp.cuas_trim_first+" tasrgets in each tile");
}
// evaluate scores here to reduce the number of attempts for centered targets
getEffectiveStrengthLMA(
target_sequence_multi,// final double [][][] target_coords, // LMA
target_strength,// final double target_strength,
target_frac,// final double [][] target_frac, // pairs - strength, minimal fraction for that strength
lma_rms,// final double lma_rms, // = 1.5; // Maximal RMS (should always match, regardless if A)
lma_arms,// final double lma_arms, // = 0.06; // Maximal absolute RMS (should match one of cuas_lma_arms OR cuas_lma_rrms (0.484)
lma_rrms,// final double lma_rrms, // = 0.15; // Maximal relative to A rms. OK is when (RMS < cuas_lma_arms) || (RMS < cuas_lma_rrms * A)
lma_mina,// final double lma_mina, // = 1.0; // Minimal A (amplitude)
lma_maxr,// final double lma_maxr, // = 5.0; // Minimal K (overshoot) = 3.0
lma_minr1,// final double lma_minr1,// = 1.0; // Minimal R1 (radius of positive peak)
lma_mink,// final double lma_mink, // = 0.0; // Minimal K (overshoot) = 1.0
lma_maxk,// final double lma_maxk, // = 5.0; // Minimal K (overshoot) = 3.0// 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
slow_fast_mismatch,// final double slow_fast_mismatch, // // 1.5; allow larger mismatch between slow and fast
fail_mismatch,// final boolean fail_mismatch,
offcenter,// final double offcenter,
cuasMotion.getNoiseNeibs(),// final int [] noise_neibs,
// cuasMotion.getNoiseMap(), // final double [] noise_map,
// noisemax, // final double noise_max,
target_horizon,// final double lma_horizon, // horizon as maximal pixel Y
cuasMotion.tilesX);// final int tilesX,
getScore(
target_sequence_multi,// final double [][][] target_sequence, // modifies certain fields (scores)
factor_lim,// final double importance_limit,
factor_pow,// final double importance_power, // Raise each factor to this power before combining
score_coeff,// final double [] importance, // for now (each - squared?): [0] - Amplitude (A/A0), 1 - RMS (RMS0/RMS), 2 - RRMS((RMS/A0) / (RMS/A)
slow_score,// final double slow_score, // multiply total score for targets detected in slow target mode
cuasMotion.tilesX);// final int tilesX,
sortMultiTargets(
target_sequence_multi,// final double [][][][] target_multi,
true);// final boolean trim_nulls) { // trim null targets
trimTargets(// limit number of targets per tile
target_sequence_multi,// final double [][][][] target_multi,