IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 19, 2007, 4:22:26 PM (19 years ago)
Author:
Paul Price
Message:

Extensive changes to APIs to allow use of a nominated value to mask
against (the maskVal). Previously, the mask values were either
hard-coded (e.g., PM_MASK_SAT) or taken as anything non-zero. The
code is tested under psphot (which has similar changes) and does not
crash, but neither is it successful in marking all bad pixels (EAM
will investigate). For this reason, I have left the "gutter" pixels
(cell gaps) set to 0 instead of NAN in pmFPAMosaic.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/objects/pmSourceSky.c

    r13034 r13898  
    66 *  @author EAM, IfA: significant modifications.
    77 *
    8  *  @version $Revision: 1.12 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2007-04-26 01:20:29 $
     8 *  @version $Revision: 1.13 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2007-06-20 02:22:26 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    4444    pmSource *source,
    4545    psStatsOptions statsOptions,
    46     psF32 Radius)
     46    psF32 Radius,
     47    psMaskType maskVal,
     48    psMaskType mark)
    4749{
    4850    psTrace("psModules.objects", 3, "---- %s() begin ----\n", __func__);
     
    6870    srcRegion = psRegionForImage(mask, srcRegion);
    6971
    70     psImageMaskRegion(mask, srcRegion, "OR", PM_MASK_MARK);
     72    psImageMaskRegion(mask, srcRegion, "OR", mark);
    7173    psStats *myStats = psStatsAlloc(statsOptions);
    72     if (!psImageStats(myStats, image, mask, 0xff)) {
     74    if (!psImageStats(myStats, image, mask, maskVal | mark)) {
    7375        psError(PS_ERR_UNKNOWN, false, "Unable to get image statistics.\n");
    7476        psFree(myStats);
    7577        return false;
    7678    }
    77     psImageMaskRegion(mask, srcRegion, "AND", PS_NOT_U8(PM_MASK_MARK));
     79    psImageMaskRegion(mask, srcRegion, "AND", PS_NOT_U8(mark));
    7880    double value = psStatsGetValue(myStats, statistic);
    7981    psFree(myStats);
     
    9597    pmSource *source,
    9698    psStatsOptions statsOptions,
    97     psF32 Radius)
     99    psF32 Radius,
     100    psMaskType maskVal,
     101    psMaskType mark
     102)
    98103{
    99104    psTrace("psModules.objects", 3, "---- %s() begin ----\n", __func__);
     
    119124    srcRegion = psRegionForImage(mask, srcRegion);
    120125
    121     psImageMaskRegion(mask, srcRegion, "OR", PM_MASK_MARK);
     126    psImageMaskRegion(mask, srcRegion, "OR", mark);
    122127    psStats *myStats = psStatsAlloc(statsOptions);
    123     if (!psImageStats(myStats, image, mask, 0xff)) {
     128    if (!psImageStats(myStats, image, mask, maskVal | mark)) {
    124129        psError(PS_ERR_UNKNOWN, false, "Unable to get image statistics.\n");
    125130        psFree(myStats);
    126131        return false;
    127132    }
    128     psImageMaskRegion(mask, srcRegion, "AND", PS_NOT_U8(PM_MASK_MARK));
     133    psImageMaskRegion(mask, srcRegion, "AND", PS_NOT_U8(mark));
    129134    double value = psStatsGetValue(myStats, statistic);
    130135    psFree(myStats);
Note: See TracChangeset for help on using the changeset viewer.