IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 23, 2010, 7:02:45 AM (16 years ago)
Author:
eugene
Message:

replace pmSubtractionMaskInvalid with pmReadoutMaskInvalid (takes test and set masks); change stack mask to propagate good (or suspect) and bad pixel masks; replace test blocks with CHECKPIX test macro; replace robust median for window with sample median (less prone to fail)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20100823/psModules/src/imcombine/pmSubtractionMatch.c

    r29170 r29215  
    275275}
    276276
    277 bool pmSubtractionMaskInvalid (const pmReadout *readout, psImageMaskType maskVal) {
    278 
    279     if (!readout) return true;
    280 
    281     psImage *image = readout->image;
    282     psImage *mask  = readout->mask;
    283     psImage *variance = readout->variance;
    284     for (int y = 0; y < image->numRows; y++) {
    285         for (int x = 0; x < image->numCols; x++) {
    286             if (mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] & maskVal) continue;
    287             bool valid = false;
    288             valid = isfinite(image->data.F32[y][x]);
    289             if (variance) {
    290                 valid &= isfinite(variance->data.F32[y][x]);
    291             }
    292             if (valid) continue;
    293             mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = maskVal;
    294         }
    295     }
    296 
    297     return true;
    298 }
     277// bool pmSubtractionMaskInvalid (const pmReadout *readout, psImageMaskType maskVal) {
     278//
     279//     if (!readout) return true;
     280//
     281//     psImage *image = readout->image;
     282//     psImage *mask  = readout->mask;
     283//     psImage *variance = readout->variance;
     284//     for (int y = 0; y < image->numRows; y++) {
     285//         for (int x = 0; x < image->numCols; x++) {
     286//             if (mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] & maskVal) continue;
     287//             bool valid = false;
     288//             valid = isfinite(image->data.F32[y][x]);
     289//             if (variance) {
     290//                 valid &= isfinite(variance->data.F32[y][x]);
     291//             }
     292//             if (valid) continue;
     293//             mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = maskVal;
     294//         }
     295//     }
     296//
     297//     return true;
     298// }
    299299
    300300bool pmSubtractionMatchPrecalc(pmReadout *conv1, pmReadout *conv2, const pmReadout *ro1, const pmReadout *ro2,
     
    387387    }
    388388
    389     pmSubtractionMaskInvalid(ro1, maskVal);
    390     pmSubtractionMaskInvalid(ro2, maskVal);
     389    // XXX this is done before calling this function
     390    // pmSubtractionMaskInvalid(ro1, maskVal);
     391    // pmSubtractionMaskInvalid(ro2, maskVal);
    391392
    392393    // General background subtraction, since this is done in pmSubtractionMatch
     
    560561    memCheck("start");
    561562
    562     pmSubtractionMaskInvalid(ro1, maskVal);
    563     pmSubtractionMaskInvalid(ro2, maskVal);
     563    // pmSubtractionMaskInvalid(ro1, maskVal);
     564    // pmSubtractionMaskInvalid(ro2, maskVal);
    564565
    565566    psRegion bounds = psRegionSet(NAN, NAN, NAN, NAN); // Bounds of valid pixels
Note: See TracChangeset for help on using the changeset viewer.