-
Andrey Filippov authored
1. calculateRowColBackProject: ERODE the coverage mask (blurred mask >= ROWCOL_BP_ERODE=0.95 ~ 16px inside at sigma 10) before the masked UM and averaging - the back-projection is unreliable near its own boundary and boundary garbage dominated the partially-covered EDGE columns in v013-ROWCOL-02 (per-x maxima ~1000 for x<14, interior clean at 13-39 counts). Excluded edge lines drop below MIN_COVER and take the legacy per-line fallback. 2. RT conditioning row/col (problem 2, borrowed from the oracle path, /jp4/ input unchanged): - REORDER: row/col now AFTER photometric+FPN. Measuring on raw captured the FPN's static line structure (rms ~6/12 counts) which the later FPN subtraction removed AGAIN - negative FPN line structure was injected into the output. - UM before averaging (new curt.rowcol_um_sigma, default 10, 0=off): profiles measured on an unsharp-masked copy, subtracted from the original - content no longer biases the averages and the max_abs gate acts on residual counts. - rowcol_max_abs default 50 (calibrated counts; configs saved before this change carry 0 = no gate - set 50 to enable). 3. CuasQC (Andrey's regression-protection design): per-product health statistics with sequence-independent pass bands, appended per run to <center>-QC.json; FAIL prints loudly, never aborts. Increment 1: ROWCOL vectors (rms<=25, scene-max p95<=500 - both of today's defects would have failed) + FPN (rms, row/col line-structure energy), hooked after calculation AND reuse in CorrectionFPN. Co-Authored-By:Claude Fable 5 <noreply@anthropic.com>
275f812b