IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 23, 2009, 3:05:43 PM (17 years ago)
Author:
bills
Message:

Fixes to destreaking of raw images

Location:
trunk/magic/remove/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/magic/remove/src

    • Property svn:ignore
      •  

        old new  
        22streaksreplace
        33streakscompare
         4streaksrelease
  • trunk/magic/remove/src/streaksrelease.c

    r21085 r21156  
    5151    }
    5252
    53     int totalPixels = 0;
    54     int totalMaskedPixels = 0;
    55     int totalNANdPixels = 0;
    56     int totalNANdWeights = 0;
    57 
    5853    // Iterate through each component of the input (there is only one except for raw images)
    5954    do {
     
    7065        }
    7166
    72         int maskedPixels = 0;
    73         int nandPixels = 0;
    74         int nandWeights = 0;
    75 
    76         psImage *image = sfiles->outImage->image;
    77         psImage *mask = sfiles->outMask->image;
    78         psImage *weight= sfiles->outWeight->image;
    79 
    80         for (int y=0; y < image->numRows; y++) {
    81             for (int x=0; x < image->numCols; x++) {
    82                 // these gets are not necessary, we could just set the pixels to nan
    83                 // but I want to get the counts
    84                 double imageVal  = psImageGet(image, x, y);
    85                 double weightVal = psImageGet(weight, x, y);
    86                 psU8 maskVal   = psImageGet(mask, x, y);
    87                 if (maskVal & maskMask) {
    88                     ++maskedPixels;
    89                     if (!isnan(imageVal)) {
    90                         ++nandPixels;
    91                         psImageSet(image, x, y, NAN);
    92                     }
    93                     if (!isnan(weightVal)) {
    94                         ++nandWeights;
    95                         psImageSet(weight, x, y, NAN);
    96                     }
    97                 }
    98             }
    99         }
    100         totalPixels += sfiles->inImage->numRows * sfiles->inImage->numCols;
    101         totalMaskedPixels += maskedPixels;
    102         totalNANdPixels += nandPixels;
    103         totalNANdWeights += nandWeights;
     67        setMaskedToNAN(sfiles, maskMask, true);
    10468
    10569        // write out the destreaked temporary images and the recovery images
     
    10872        printf("time to process component %d: %f\n", sfiles->extnum, psTimerClear("PROCESS_COMPONENT"));
    10973    } while (streakFilesNextExtension(sfiles));
    110 
    111     printf("pixels:        %10ld\n", totalPixels);
    112     printf("masked pixels: %10ld %4.2f%%\n", totalMaskedPixels, 100. * totalMaskedPixels / totalPixels);
    113     printf("nand pixels:   %10ld %4.2f%%\n", totalNANdPixels, 100. * totalNANdPixels / totalPixels);
    114     printf("nand weights:  %10ld %4.2f%%\n", totalNANdWeights, 100. * totalNANdWeights / totalPixels);
    11574
    11675    psTimerStart("CLOSE_IMAGES");
     
    292251    } else {
    293252        // image data directly from psFits
    294         readImage(sf->inImage, sf->extnum, sf->stage);
     253        readImage(sf->inImage, sf->extnum, sf->stage, false);
    295254    }
    296255    sf->outImage->header = (psMetadata*) psMemIncrRefCounter(sf->inImage->header);
     
    325284
    326285    if (sf->inMask) {
    327         readImage(sf->inMask, sf->extnum, sf->stage);
     286        readImage(sf->inMask, sf->extnum, sf->stage, true);
    328287        sf->outMask->header = (psMetadata*) psMemIncrRefCounter(sf->inMask->header);
    329288        if (sf->recMask) {
     
    358317
    359318    if (sf->inWeight) {
    360         readImage(sf->inWeight, sf->extnum, sf->stage);
     319        readImage(sf->inWeight, sf->extnum, sf->stage, false);
    361320        sf->outWeight->header = (psMetadata*) psMemIncrRefCounter(sf->inWeight->header);
    362321        if (sf->recWeight) {
Note: See TracChangeset for help on using the changeset viewer.