IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 1832


Ignore:
Timestamp:
Sep 20, 2004, 10:36:46 AM (22 years ago)
Author:
harman
Message:

Updated tests

Location:
trunk/psModules/src
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/Makefile.am

    r1822 r1832  
    11lib_LIBRARIES = libpsmodule.a
    22bin_PROGRAMS = tst_pmFlatField
     3bin_PROGRAMS = tst_pmMaskBadPixels
    34
    45libpsmodule_a_SOURCES = pmFlatField.c pmMaskBadPixels.c
     
    67libpsmodule_adir = .
    78
    8 
    99tst_pmFlatField_SOURCES = tst_pmFlatField.c
    1010tst_pmFlatField_LDFLAGS = libpsmodule.a
     11
     12tst_pmMaskBadPixels_SOURCES = tst_pmMaskBadPixels.c
     13tst_pmMaskBadPixels_LDFLAGS = libpsmodule.a
     14
  • trunk/psModules/src/Makefile.in

    r1822 r1832  
    132132target_alias = @target_alias@
    133133lib_LIBRARIES = libpsmodule.a
    134 bin_PROGRAMS = tst_pmFlatField
     134bin_PROGRAMS = tst_pmMaskBadPixels
    135135
    136136libpsmodule_a_SOURCES = pmFlatField.c pmMaskBadPixels.c
     
    140140tst_pmFlatField_SOURCES = tst_pmFlatField.c
    141141tst_pmFlatField_LDFLAGS = libpsmodule.a
     142
     143tst_pmMaskBadPixels_SOURCES = tst_pmMaskBadPixels.c
     144tst_pmMaskBadPixels_LDFLAGS = libpsmodule.a
    142145subdir = src
    143146ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
     
    152155        pmMaskBadPixels.$(OBJEXT)
    153156libpsmodule_a_OBJECTS = $(am_libpsmodule_a_OBJECTS)
    154 bin_PROGRAMS = tst_pmFlatField$(EXEEXT)
     157bin_PROGRAMS = tst_pmMaskBadPixels$(EXEEXT)
    155158PROGRAMS = $(bin_PROGRAMS)
    156159
    157 am_tst_pmFlatField_OBJECTS = tst_pmFlatField.$(OBJEXT)
    158 tst_pmFlatField_OBJECTS = $(am_tst_pmFlatField_OBJECTS)
    159 tst_pmFlatField_LDADD = $(LDADD)
    160 tst_pmFlatField_DEPENDENCIES =
     160am_tst_pmMaskBadPixels_OBJECTS = tst_pmMaskBadPixels.$(OBJEXT)
     161tst_pmMaskBadPixels_OBJECTS = $(am_tst_pmMaskBadPixels_OBJECTS)
     162tst_pmMaskBadPixels_LDADD = $(LDADD)
     163tst_pmMaskBadPixels_DEPENDENCIES =
    161164
    162165DEFAULT_INCLUDES =  -I. -I$(srcdir) -I.
     
    165168@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/pmFlatField.Po \
    166169@AMDEP_TRUE@    ./$(DEPDIR)/pmMaskBadPixels.Po \
    167 @AMDEP_TRUE@    ./$(DEPDIR)/tst_pmFlatField.Po
     170@AMDEP_TRUE@    ./$(DEPDIR)/tst_pmMaskBadPixels.Po
    168171COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
    169172        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
     
    173176LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
    174177        $(AM_LDFLAGS) $(LDFLAGS) -o $@
    175 DIST_SOURCES = $(libpsmodule_a_SOURCES) $(tst_pmFlatField_SOURCES)
     178DIST_SOURCES = $(libpsmodule_a_SOURCES) $(tst_pmMaskBadPixels_SOURCES)
    176179HEADERS = $(libpsmodule_a_HEADERS)
    177180
    178181DIST_COMMON = $(libpsmodule_a_HEADERS) $(srcdir)/Makefile.in \
    179182        Makefile.am config.h.in
    180 SOURCES = $(libpsmodule_a_SOURCES) $(tst_pmFlatField_SOURCES)
     183SOURCES = $(libpsmodule_a_SOURCES) $(tst_pmMaskBadPixels_SOURCES)
    181184
    182185all: config.h
     
    270273          rm -f $$p $$f ; \
    271274        done
    272 tst_pmFlatField$(EXEEXT): $(tst_pmFlatField_OBJECTS) $(tst_pmFlatField_DEPENDENCIES)
    273         @rm -f tst_pmFlatField$(EXEEXT)
    274         $(LINK) $(tst_pmFlatField_LDFLAGS) $(tst_pmFlatField_OBJECTS) $(tst_pmFlatField_LDADD) $(LIBS)
     275tst_pmMaskBadPixels$(EXEEXT): $(tst_pmMaskBadPixels_OBJECTS) $(tst_pmMaskBadPixels_DEPENDENCIES)
     276        @rm -f tst_pmMaskBadPixels$(EXEEXT)
     277        $(LINK) $(tst_pmMaskBadPixels_LDFLAGS) $(tst_pmMaskBadPixels_OBJECTS) $(tst_pmMaskBadPixels_LDADD) $(LIBS)
    275278
    276279mostlyclean-compile:
     
    282285@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pmFlatField.Po@am__quote@
    283286@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pmMaskBadPixels.Po@am__quote@
    284 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_pmFlatField.Po@am__quote@
     287@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_pmMaskBadPixels.Po@am__quote@
    285288
    286289.c.o:
  • trunk/psModules/src/pmFlatField.c

    r1822 r1832  
    1818 *  @author Ross Harman, MHPCC
    1919 *
    20  *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
    21  *  @date $Date: 2004-09-17 00:49:04 $
     20 *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
     21 *  @date $Date: 2004-09-20 20:36:46 $
    2222 *
    2323 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    5858
    5959    inImage = in->image;
    60     inMask = in->mask;
    6160    flatImage = flat->image;
    6261    if (inImage == NULL) {
    6362        psError(__func__, " : Line %d - Null not allowed for input image", __LINE__);
    6463        return false;
    65     } else if(flatImage) {
     64    } else if(flatImage == NULL) {
    6665        psError(__func__, " : Line %d - Null not allowed for flat image", __LINE__);
    6766        return false;
    68     } else if(inMask == NULL) {
    69         inMask = psImageAlloc(inImage->numCols, inImage->numRows, PS_TYPE_MASK);
     67    } else if(in->mask == NULL) {
     68        in->mask = psImageAlloc(inImage->numCols, inImage->numRows, PS_TYPE_MASK);
    7069    }
     70    inMask = in->mask;
    7171
    7272    // Check input image and its mask are not larger than flat image
     
    178178    }
    179179
     180    printf("");
    180181    return true;
    181182}
  • trunk/psModules/src/pmMaskBadPixels.c

    r1822 r1832  
    1616 * pixel on the mask. In the event that the mask image is too small (i.e., pixels on the input image refer to
    1717 * pixels outside the range of the mask image), the function shall generate an error.
     18 
    1819 *  @author Ross Harman, MHPCC
    1920 *
    20  *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
    21  *  @date $Date: 2004-09-17 00:49:04 $
     21 *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
     22 *  @date $Date: 2004-09-20 20:36:46 $
    2223 *
    2324 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    4041    int jj = 0;
    4142    int ii = 0;
     43    int rRound = 0;
    4244    int rowMin = 0;
    4345    int rowMax = 0;
     
    4648    int totOffCol = 0;
    4749    int totOffRow = 0;
    48     float r = 0.0;
     50    float r = 0.0f;
    4951    psElemType inType;
    5052    psElemType maskType;
     
    6365
    6466    inImage = in->image;
    65     inMask = in->mask;
    6667    if (inImage == NULL) {
    6768        psError(__func__, " : Line %d - Null not allowed for input image", __LINE__);
    6869        return false;
    6970    } else if(inMask == NULL) {
    70         inMask = psImageAlloc(inImage->numCols, inImage->numRows, PS_TYPE_MASK);
     71        in->mask = psImageAlloc(inImage->numCols, inImage->numRows, PS_TYPE_MASK);
    7172    }
     73    inMask = in->mask;
    7274
    7375    // Check input image and its mask are not larger than mask
     
    135137    // Macro for all PS types
    136138    #define PM_BAD_PIXELS(TYPE)                                                                              \
    137 case PS_TYPE_##TYPE:                                                                                 \
    138     for(j=totOffRow; j<inImage->numRows; j++) {                                                      \
    139         for(i=totOffCol; i<inImage->numCols; i++) {                                                  \
    140             if(inImage->data.TYPE[j][i] > sat) {                                                     \
    141                 /* Pixels with flux greater than sat shall be masked */                              \
    142                 inMask->data.PS_TYPE_MASK_DATA[j][i] |= PM_MASK_SAT;                                 \
    143             }                                                                                        \
    144             if(mask->data.PS_TYPE_MASK_DATA[j][i] & maskVal) {                                       \
    145                 /* Pixels in mask which satisfy maskVal shall have their pixels masked in inMask */  \
    146                 inMask->data.PS_TYPE_MASK_DATA[j][i] |= mask->data.PS_TYPE_MASK_DATA[j][i]|maskVal;  \
    147             }                                                                                        \
    148             rowMin = MAX(j-grow, 0);                                                                 \
    149             rowMax = MIN(j+grow, inImage->numRows-1);                                                \
    150             colMin = MAX(i-grow, 0);                                                                 \
    151             colMax = MIN(i+grow, inImage->numCols-1);                                                \
    152             for(jj=rowMin; jj<rowMax; jj++) {                                                        \
    153                 for(ii=colMin; ii<colMax; ii++) {                                                    \
    154                     if(mask->data.PS_TYPE_MASK_DATA[j][i] & growVal) {                               \
    155                         r = sqrtf((ii-i)*(ii-i)+(jj-j)*(jj-j));                                      \
    156                         if(r <= grow) {                                                              \
    157                             /* Pixels in mask which satisfy growVal shall have their corresponding   \
    158                             pixels,along with all pixels within the grow radius masked */            \
    159                             inMask->data.PS_TYPE_MASK_DATA[j][i] |=                                  \
    160                                     mask->data.PS_TYPE_MASK_DATA[j][i]&growVal;                          \
    161                         }                                                                            \
    162                     }                                                                                \
    163                 }                                                                                    \
    164             }                                                                                        \
    165         }                                                                                            \
    166     }                                                                                                \
     139case PS_TYPE_##TYPE:                                                                                         \
     140    for(j=totOffRow; j<inImage->numRows; j++) {                                                              \
     141        for(i=totOffCol; i<inImage->numCols; i++) {                                                          \
     142            \
     143            /* Pixels with flux greater than sat shall be masked */                                          \
     144            if(inImage->data.TYPE[j][i] > sat) {                                                             \
     145                inMask->data.PS_TYPE_MASK_DATA[j][i] |= PM_MASK_SAT;                                         \
     146            }                                                                                                \
     147            \
     148            /* Pixels which satisfy maskVal shall be masked */                                               \
     149            inMask->data.PS_TYPE_MASK_DATA[j][i] |= (mask->data.PS_TYPE_MASK_DATA[j][i]&maskVal);            \
     150            \
     151            /* Pixels which satisfy growVal and within the grow radius shall be masked */                    \
     152            if(mask->data.PS_TYPE_MASK_DATA[j][i] & growVal) {                                               \
     153                rowMin = MAX(j-grow, 0);                                                                     \
     154                rowMax = MIN(j+grow+1, inImage->numRows);                                                    \
     155                colMin = MAX(i-grow, 0);                                                                     \
     156                colMax = MIN(i+grow+1, inImage->numCols);                                                    \
     157                for(jj=rowMin; jj<rowMax; jj++) {                                                            \
     158                    for(ii=colMin; ii<colMax; ii++) {                                                        \
     159                        r = sqrtf((ii-i)*(ii-i)+(jj-j)*(jj-j));                                              \
     160                        rRound = r + 0.5;                                                                    \
     161                        if(rRound <= grow) {                                                                 \
     162                            inMask->data.PS_TYPE_MASK_DATA[jj][ii] |=                                        \
     163                                    (mask->data.PS_TYPE_MASK_DATA[j][i]&growVal);                            \
     164                        }                                                                                    \
     165                    }                                                                                        \
     166                }                                                                                            \
     167            }                                                                                                \
     168        }                                                                                                    \
     169    }                                                                                                        \
    167170    break;
    168171
  • trunk/psModules/src/tst_pmFlatField.c

    r1802 r1832  
    55 *  Detailed Description goes here.
    66 *
    7  *  @author Robert DeSonia, MHPCC
     7 *  @author Ross Harman, MHPCC
    88 *
    9  *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-09-14 02:29:40 $
     9 *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-09-20 20:36:46 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    1515#include "pmFlatField.h"
    1616
     17
     18#define PRINT_MATRIX(IMAGE,TYPE)                                                                             \
     19for(int i=IMAGE->numRows-1; i>-1; i--) {                                                                 \
     20    for(int j=0; j<IMAGE->numCols; j++) {                                                                \
     21        if(PS_IS_PSELEMTYPE_COMPLEX(IMAGE->type.type)) {                                                 \
     22            printf("%f+%fi ", creal(IMAGE->data.TYPE[i][j]), cimag(IMAGE->data.TYPE[i][j]));             \
     23        } else if(PS_IS_PSELEMTYPE_INT(IMAGE->type.type)) {                                              \
     24            printf("%d ", (int)IMAGE->data.TYPE[i][j]);                                                  \
     25        } else {                                                                                         \
     26            printf("%f ", (double)IMAGE->data.TYPE[i][j]);                                               \
     27        }                                                                                                \
     28    }                                                                                                    \
     29    printf("\n");                                                                                        \
     30}                                                                                                        \
     31printf("\n");
     32
     33
    1734int main(void)
    1835{
    19     psVector* vec = psVectorAlloc(10,PS_TYPE_F32);
    20     for (int i=0;i<10;i++) {
    21         vec->data.F32[i] = i/9.0f;
     36    psImage *inImage = psImageAlloc(3, 3, PS_TYPE_F64);
     37    psImage *flatImage1 = psImageAlloc(3, 3, PS_TYPE_F64);
     38    psImage *flatImage2 = psImageAlloc(3, 3, PS_TYPE_F64);
     39    psReadout *inReadout  = psReadoutAlloc(0, 0, inImage);
     40    psReadout *flatReadout  = psReadoutAlloc(0, 0, flatImage1);
     41
     42    for(int r=0;r<3;r++) {
     43        for(int c=0;c<3;c++) {
     44            inImage->data.F64[r][c]=8.0;
     45            flatImage1->data.F64[r][c]=4.0;
     46            flatImage2->data.F64[r][c]=0.0;
     47        }
    2248    }
    23     //    pmFlatField(vec);
     49
     50    PRINT_MATRIX(inImage,F64);
     51    PRINT_MATRIX(flatImage1, F64);
     52    pmFlatField(inReadout, flatReadout);
     53    PRINT_MATRIX(inImage,F64);
     54
     55    PRINT_MATRIX(inImage, F64);
     56    PRINT_MATRIX(flatImage2, F64);
     57    flatReadout->image = flatImage2;
     58    pmFlatField(inReadout, flatReadout);
     59    PRINT_MATRIX(inReadout->mask, PS_TYPE_MASK_DATA);
     60    return 0;
    2461}
Note: See TracChangeset for help on using the changeset viewer.