Changeset 21183 for trunk/psLib/src/imageops/psImageGeomManip.c
- Timestamp:
- Jan 26, 2009, 8:40:07 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/imageops/psImageGeomManip.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/imageops/psImageGeomManip.c
r20299 r21183 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1.4 4$ $Name: not supported by cvs2svn $13 * @date $Date: 200 8-10-21 22:10:53$12 * @version $Revision: 1.45 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2009-01-27 06:39:37 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 39 39 const psImage* in, 40 40 const psImage* mask, 41 ps MaskType maskVal,41 psImageMaskType maskVal, 42 42 int scale, 43 43 const psStats* stats) … … 47 47 psS32 outRows; 48 48 psS32 outCols; 49 psVector *vec; // vector to hold the values of a single bin.50 psVector *maskVec = NULL; // vector to hold the mask of a single bin.51 ps MaskType*maskData = NULL;52 psStats *myStats;49 psVector *vec; // vector to hold the values of a single bin. 50 psVector *maskVec = NULL; // vector to hold the mask of a single bin. 51 psVectorMaskType *maskData = NULL; 52 psStats *myStats; 53 53 54 54 if (in == NULL) { … … 86 86 87 87 if (mask != NULL) { 88 if (mask->type.type != PS_TYPE_ MASK) {88 if (mask->type.type != PS_TYPE_IMAGE_MASK) { 89 89 char* typeStr; 90 90 PS_TYPE_NAME(typeStr,mask->type.type); 91 91 psError(PS_ERR_BAD_PARAMETER_TYPE, true, 92 92 _("Input psImage mask type, %s, is not the supported mask datatype of %s."), 93 typeStr, PS_TYPE_ MASK_NAME);93 typeStr, PS_TYPE_IMAGE_MASK_NAME); 94 94 psFree(out); 95 95 psFree(vec); 96 96 return NULL; 97 97 } 98 maskVec = psVectorAllocEmpty(scale * scale, PS_TYPE_ MASK);99 maskData = maskVec->data.PS_TYPE_ MASK_DATA;98 maskVec = psVectorAllocEmpty(scale * scale, PS_TYPE_VECTOR_MASK); 99 maskData = maskVec->data.PS_TYPE_VECTOR_MASK_DATA; 100 100 } 101 101 … … 114 114 ps##TYPE *outRowData; \ 115 115 ps##TYPE *vecData = vec->data.TYPE; \ 116 ps MaskType *inRowMask = NULL; \116 psImageMaskType *inRowMask = NULL; \ 117 117 for (psS32 row = 0; row < outRows; row++) { \ 118 118 outRowData = out->data.TYPE[row]; \ … … 126 126 ps##TYPE* inRowData = in->data.TYPE[inRow]; \ 127 127 if (mask != NULL) { \ 128 inRowMask = mask->data.PS_TYPE_ MASK_DATA[inRow]; \128 inRowMask = mask->data.PS_TYPE_IMAGE_MASK_DATA[inRow]; \ 129 129 } \ 130 130 for (psS32 inCol = inCurrentCol; inCol < inNextCol && inCol < inCols; inCol++) { \ 131 131 if (maskData != NULL) { \ 132 maskData[n] = inRowMask[inCol]; \132 maskData[n] = (inRowMask[inCol] & maskVal); \ 133 133 } \ 134 134 vecData[n++] = inRowData[inCol]; \ … … 139 139 maskVec->n = n; \ 140 140 } \ 141 psVectorStats(myStats, vec, NULL, maskVec, maskVal);\141 psVectorStats(myStats, vec, NULL, maskVec, 0xff); /* the mask vector has only 0 or 1 */ \ 142 142 outRowData[col] = (ps##TYPE)psStatsGetValue(myStats, statistic); \ 143 143 } \ … … 659 659 660 660 bool psImageShiftMask(psImage **out, psImage **outMask, const psImage* in, const psImage *inMask, 661 ps MaskType maskVal, float dx, float dy, double exposed, psMaskType blank,661 psImageMaskType maskVal, float dx, float dy, double exposed, psImageMaskType blank, 662 662 psImageInterpolateMode mode) 663 663 { … … 667 667 PS_ASSERT_IMAGE_NON_NULL(inMask, false); 668 668 PS_ASSERT_IMAGES_SIZE_EQUAL(in, inMask, false); 669 PS_ASSERT_IMAGE_TYPE(inMask, PS_TYPE_ MASK, false);669 PS_ASSERT_IMAGE_TYPE(inMask, PS_TYPE_IMAGE_MASK, false); 670 670 } 671 671 … … 675 675 *out = psImageRecycle(*out, numCols, numRows, type); 676 676 if (outMask) { 677 *outMask = psImageRecycle(*outMask, numCols, numRows, PS_TYPE_ MASK);677 *outMask = psImageRecycle(*outMask, numCols, numRows, PS_TYPE_IMAGE_MASK); 678 678 } 679 679 … … 702 702 for (int row = 0; row < numRows; row++) { \ 703 703 ps##TYPE* outRow = (*out)->data.TYPE[row]; \ 704 ps MaskType *outMaskRow = (outMask ? (*outMask)->data.PS_TYPE_MASK_DATA[row] : NULL); \704 psImageMaskType *outMaskRow = (outMask ? (*outMask)->data.PS_TYPE_IMAGE_MASK_DATA[row] : NULL); \ 705 705 float y = row + 0.5 - dy; \ 706 706 for (int col = 0; col < numCols; col++) { \ 707 707 float x = col + 0.5 - dx; \ 708 708 double value; \ 709 ps MaskType valueMask = 0; \709 psImageMaskType valueMask = 0; \ 710 710 if (!psImageInterpolate(&value, NULL, &valueMask, x, y, interp)) { \ 711 711 psError(PS_ERR_UNKNOWN, false, "Unable to interpolate image."); \ … … 750 750 const psImage *input, 751 751 const psImage *inputMask, 752 ps MaskType inputMaskVal,752 psImageMaskType inputMaskVal, 753 753 const psPlaneTransform *outToIn, 754 754 psRegion region, … … 778 778 return NULL; 779 779 } 780 if (inputMask->type.type != PS_TYPE_ MASK) {780 if (inputMask->type.type != PS_TYPE_IMAGE_MASK) { 781 781 char* typeStr; 782 782 PS_TYPE_NAME(typeStr,inputMask->type.type); 783 783 psError(PS_ERR_BAD_PARAMETER_TYPE, true, 784 784 _("Input psImage mask type, %s, is not the supported mask datatype of %s."), 785 typeStr, PS_TYPE_ MASK_NAME);785 typeStr, PS_TYPE_IMAGE_MASK_NAME); 786 786 psFree(output); 787 787 return NULL;
Note:
See TracChangeset
for help on using the changeset viewer.
