IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 18181


Ignore:
Timestamp:
Jun 18, 2008, 3:15:28 PM (18 years ago)
Author:
Paul Price
Message:

Record the variance factor.

Location:
trunk/psModules/src/imcombine
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/imcombine/pmSubtractionMatch.c

    r17783 r18181  
    8989
    9090
    91 
    92 
     91// Record the variance factor in a readout
     92static bool recordVarianceFactor(pmReadout *ro, // Readout of interest
     93                                 float varFactor, // Variance factor
     94                                 const psRegion *region // Region of interest
     95                                 )
     96{
     97    varFactor *= (region->x1 - region->x1 + 1) * (region->y1 * region->y1 + 1) /
     98        (ro->image->numCols * ro->image->numRows);
     99
     100    psMetadataItem *vfItem = psMetadataLookup(ro->analysis, PM_SUBTRACTION_ANALYSIS_VARFACTOR);
     101    if (vfItem) {
     102        psAssert(vfItem->type == PS_TYPE_F32, "Should be the type we said.");
     103        vfItem->data.F32 += varFactor;
     104    } else {
     105        psMetadataAddF32(ro->analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_VARFACTOR, 0,
     106                         "Variance factor weighted by the area", varFactor);
     107    }
     108
     109    return true;
     110}
    93111
    94112bool pmSubtractionMatch(pmReadout *conv1, pmReadout *conv2, const pmReadout *ro1, const pmReadout *ro2,
     
    507525                }
    508526            }
     527
     528
     529            // Set the variance factors
     530            float xMid = 0.5 * (region->x0 + region->x1); // Average x position
     531            float yMid = 0.5 * (region->y0 + region->y1); // Average y position
     532            switch (mode) {
     533              case PM_SUBTRACTION_MODE_1: {
     534                  recordVarianceFactor(conv1, pmSubtractionVarianceFactor(kernels, xMid, yMid, false),
     535                                       region);
     536                  break;
     537              }
     538              case PM_SUBTRACTION_MODE_2:
     539                recordVarianceFactor(conv1, pmSubtractionVarianceFactor(kernels, xMid, yMid, false),
     540                                     region);
     541                break;
     542              case PM_SUBTRACTION_MODE_DUAL:
     543                recordVarianceFactor(conv1, pmSubtractionVarianceFactor(kernels, xMid, yMid, false),
     544                                     region);
     545                recordVarianceFactor(conv2, pmSubtractionVarianceFactor(kernels, xMid, yMid, true),
     546                                     region);
     547                break;
     548              default:
     549                psAbort("Should never reach here.");
     550            }
    509551        }
    510552    }
  • trunk/psModules/src/imcombine/pmSubtractionMatch.h

    r17783 r18181  
    1414#define PM_SUBTRACTION_ANALYSIS_STAMPS_RMS "SUBTRACTION.RMS" // Name of stamp rms in the analysis metadata
    1515#define PM_SUBTRACTION_ANALYSIS_STAMPS_NUM "SUBTRACTION.NUM"// Name of the number of stamps in the analysis MD
     16#define PM_SUBTRACTION_ANALYSIS_VARFACTOR "SUBTRACTION.VARFACTOR"// Name of variance factor in the analysis MD
    1617
    1718/// Match two images
Note: See TracChangeset for help on using the changeset viewer.