Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

pmMaskBadPixels.h

Go to the documentation of this file.
00001 /** @file  pmMaskBadPixels.h
00002  *
00003  *  @brief Given an input image, a bad pixel mask, a corresponding value in the bad pixel mask to mask, a
00004  *  saturation level, and a growing radius, mask in the input image those pixels in the bad pixel mask that
00005  *  match the value to mask.
00006  *
00007  *  Given an input image, in, a bad pixel mask, a corresponding value in the bad pixel mask to mask in the
00008  *  input image, maskVal, a saturation level, and a growing radius, pmMaskBadPixels shall mask in the input
00009  *  image those pixels in the bad pixel mask that match the value to mask. Note that the input image, in, is
00010  *  modified in-place. All pixels in the mask which satisfy the maskVal shall have their corresponding pixels
00011  *  masked in the input image, in. All pixels which satisfy the growVal shall have their corresponding
00012  *  pixels, along with all pixels within the grow radius masked. Pixels which have flux greater than sat shall
00013  *  also be masked, but not grown. Note that the input image, in, and the mask need not be the same size,
00014  *  since the input image may already have been trimmed (following overscan subtraction), but the function
00015  *  shall use the offsets in the image (in->x0 and in->y0) to determine the appropriate offsets to obtain the
00016  *  correct pixel on the mask. In the event that the mask image is too small (i.e., pixels on the input image
00017  *  refer to pixels outside the range of the mask image), the function shall generate an error.
00018  *
00019  *  @author Ross Harman, MHPCC
00020  *
00021  *  @version $Revision: 1.1 $ $Name: rel5_1 $
00022  *  @date $Date: 2004/09/17 00:49:04 $
00023  *
00024  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
00025  */
00026 
00027 #include "pslib.h"
00028 
00029 /** Mask values */
00030 typedef enum {
00031     PM_MASK_TRAP    = 0x0001,   ///< The pixel is a charge trap.
00032     PM_MASK_BADCOL  = 0x0002,   ///< The pixel is a bad column.
00033     PM_MASK_SAT     = 0x0004,   ///< The pixel is saturated.
00034     PM_MASK_FLAT    = 0x0008    ///< The pixel is non-positive in the flat-field.
00035 } pmMaskValue;
00036 
00037 /** Macro to find maximum of two numbers */
00038 #define MAX(A,B)((A)>=(B)?(A):(B))
00039 
00040 /** Macro to find minimum of two numbers */
00041 #define MIN(A,B)((A)<=(B)?(A):(B))
00042 
00043 
00044 /** Execute bad pixels module.
00045  *
00046  *  Given an input image, a bad pixel mask, a corresponding value in the bad pixel mask to mask, a
00047  *  saturation level, and a growing radius, mask in the input image those pixels in the bad pixel mask that
00048  *  match the value to mask.
00049  *
00050  *  @return  bool: True or false for success or failure
00051  */
00052 bool pmMaskBadPixels(
00053     psReadout *in,          ///< Readout containing input image data.
00054     const psImage *mask,    ///< Mask data to be added to readout mask data.
00055     unsigned int maskVal,   ///< Mask value to determine what to add to input mask.
00056     float sat,              ///< Saturation limit to mask bad pixels.
00057     unsigned int growVal,   ///< Mask data to determine if a circurlar area should be masked.
00058     int grow                ///< Radius of mask to apply around pixel.
00059 );
00060 

Generated on Wed Apr 6 14:09:04 2005 for Pan-STARRS Module Library by  doxygen 1.3.9.1