Changeset 1832
- Timestamp:
- Sep 20, 2004, 10:36:46 AM (22 years ago)
- Location:
- trunk/psModules/src
- Files:
-
- 1 added
- 5 edited
-
Makefile.am (modified) (2 diffs)
-
Makefile.in (modified) (7 diffs)
-
pmFlatField.c (modified) (3 diffs)
-
pmMaskBadPixels.c (modified) (5 diffs)
-
tst_pmFlatField.c (modified) (2 diffs)
-
tst_pmMaskBadPixels.c (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/Makefile.am
r1822 r1832 1 1 lib_LIBRARIES = libpsmodule.a 2 2 bin_PROGRAMS = tst_pmFlatField 3 bin_PROGRAMS = tst_pmMaskBadPixels 3 4 4 5 libpsmodule_a_SOURCES = pmFlatField.c pmMaskBadPixels.c … … 6 7 libpsmodule_adir = . 7 8 8 9 9 tst_pmFlatField_SOURCES = tst_pmFlatField.c 10 10 tst_pmFlatField_LDFLAGS = libpsmodule.a 11 12 tst_pmMaskBadPixels_SOURCES = tst_pmMaskBadPixels.c 13 tst_pmMaskBadPixels_LDFLAGS = libpsmodule.a 14 -
trunk/psModules/src/Makefile.in
r1822 r1832 132 132 target_alias = @target_alias@ 133 133 lib_LIBRARIES = libpsmodule.a 134 bin_PROGRAMS = tst_pm FlatField134 bin_PROGRAMS = tst_pmMaskBadPixels 135 135 136 136 libpsmodule_a_SOURCES = pmFlatField.c pmMaskBadPixels.c … … 140 140 tst_pmFlatField_SOURCES = tst_pmFlatField.c 141 141 tst_pmFlatField_LDFLAGS = libpsmodule.a 142 143 tst_pmMaskBadPixels_SOURCES = tst_pmMaskBadPixels.c 144 tst_pmMaskBadPixels_LDFLAGS = libpsmodule.a 142 145 subdir = src 143 146 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 … … 152 155 pmMaskBadPixels.$(OBJEXT) 153 156 libpsmodule_a_OBJECTS = $(am_libpsmodule_a_OBJECTS) 154 bin_PROGRAMS = tst_pm FlatField$(EXEEXT)157 bin_PROGRAMS = tst_pmMaskBadPixels$(EXEEXT) 155 158 PROGRAMS = $(bin_PROGRAMS) 156 159 157 am_tst_pm FlatField_OBJECTS = tst_pmFlatField.$(OBJEXT)158 tst_pm FlatField_OBJECTS = $(am_tst_pmFlatField_OBJECTS)159 tst_pm FlatField_LDADD = $(LDADD)160 tst_pm FlatField_DEPENDENCIES =160 am_tst_pmMaskBadPixels_OBJECTS = tst_pmMaskBadPixels.$(OBJEXT) 161 tst_pmMaskBadPixels_OBJECTS = $(am_tst_pmMaskBadPixels_OBJECTS) 162 tst_pmMaskBadPixels_LDADD = $(LDADD) 163 tst_pmMaskBadPixels_DEPENDENCIES = 161 164 162 165 DEFAULT_INCLUDES = -I. -I$(srcdir) -I. … … 165 168 @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/pmFlatField.Po \ 166 169 @AMDEP_TRUE@ ./$(DEPDIR)/pmMaskBadPixels.Po \ 167 @AMDEP_TRUE@ ./$(DEPDIR)/tst_pm FlatField.Po170 @AMDEP_TRUE@ ./$(DEPDIR)/tst_pmMaskBadPixels.Po 168 171 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 169 172 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) … … 173 176 LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ 174 177 $(AM_LDFLAGS) $(LDFLAGS) -o $@ 175 DIST_SOURCES = $(libpsmodule_a_SOURCES) $(tst_pm FlatField_SOURCES)178 DIST_SOURCES = $(libpsmodule_a_SOURCES) $(tst_pmMaskBadPixels_SOURCES) 176 179 HEADERS = $(libpsmodule_a_HEADERS) 177 180 178 181 DIST_COMMON = $(libpsmodule_a_HEADERS) $(srcdir)/Makefile.in \ 179 182 Makefile.am config.h.in 180 SOURCES = $(libpsmodule_a_SOURCES) $(tst_pm FlatField_SOURCES)183 SOURCES = $(libpsmodule_a_SOURCES) $(tst_pmMaskBadPixels_SOURCES) 181 184 182 185 all: config.h … … 270 273 rm -f $$p $$f ; \ 271 274 done 272 tst_pm FlatField$(EXEEXT): $(tst_pmFlatField_OBJECTS) $(tst_pmFlatField_DEPENDENCIES)273 @rm -f tst_pm FlatField$(EXEEXT)274 $(LINK) $(tst_pm FlatField_LDFLAGS) $(tst_pmFlatField_OBJECTS) $(tst_pmFlatField_LDADD) $(LIBS)275 tst_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) 275 278 276 279 mostlyclean-compile: … … 282 285 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pmFlatField.Po@am__quote@ 283 286 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pmMaskBadPixels.Po@am__quote@ 284 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_pm FlatField.Po@am__quote@287 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_pmMaskBadPixels.Po@am__quote@ 285 288 286 289 .c.o: -
trunk/psModules/src/pmFlatField.c
r1822 r1832 18 18 * @author Ross Harman, MHPCC 19 19 * 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 $ 22 22 * 23 23 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 58 58 59 59 inImage = in->image; 60 inMask = in->mask;61 60 flatImage = flat->image; 62 61 if (inImage == NULL) { 63 62 psError(__func__, " : Line %d - Null not allowed for input image", __LINE__); 64 63 return false; 65 } else if(flatImage ) {64 } else if(flatImage == NULL) { 66 65 psError(__func__, " : Line %d - Null not allowed for flat image", __LINE__); 67 66 return false; 68 } else if(in Mask == NULL) {69 in Mask = 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); 70 69 } 70 inMask = in->mask; 71 71 72 72 // Check input image and its mask are not larger than flat image … … 178 178 } 179 179 180 printf(""); 180 181 return true; 181 182 } -
trunk/psModules/src/pmMaskBadPixels.c
r1822 r1832 16 16 * pixel on the mask. In the event that the mask image is too small (i.e., pixels on the input image refer to 17 17 * pixels outside the range of the mask image), the function shall generate an error. 18 18 19 * @author Ross Harman, MHPCC 19 20 * 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 $ 22 23 * 23 24 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 40 41 int jj = 0; 41 42 int ii = 0; 43 int rRound = 0; 42 44 int rowMin = 0; 43 45 int rowMax = 0; … … 46 48 int totOffCol = 0; 47 49 int totOffRow = 0; 48 float r = 0.0 ;50 float r = 0.0f; 49 51 psElemType inType; 50 52 psElemType maskType; … … 63 65 64 66 inImage = in->image; 65 inMask = in->mask;66 67 if (inImage == NULL) { 67 68 psError(__func__, " : Line %d - Null not allowed for input image", __LINE__); 68 69 return false; 69 70 } else if(inMask == NULL) { 70 in Mask = psImageAlloc(inImage->numCols, inImage->numRows, PS_TYPE_MASK);71 in->mask = psImageAlloc(inImage->numCols, inImage->numRows, PS_TYPE_MASK); 71 72 } 73 inMask = in->mask; 72 74 73 75 // Check input image and its mask are not larger than mask … … 135 137 // Macro for all PS types 136 138 #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 } \ 139 case 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 } \ 167 170 break; 168 171 -
trunk/psModules/src/tst_pmFlatField.c
r1802 r1832 5 5 * Detailed Description goes here. 6 6 * 7 * @author Ro bert DeSonia, MHPCC7 * @author Ross Harman, MHPCC 8 8 * 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 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 15 15 #include "pmFlatField.h" 16 16 17 18 #define PRINT_MATRIX(IMAGE,TYPE) \ 19 for(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 } \ 31 printf("\n"); 32 33 17 34 int main(void) 18 35 { 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 } 22 48 } 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; 24 61 }
Note:
See TracChangeset
for help on using the changeset viewer.
