Changeset 14866
- Timestamp:
- Sep 17, 2007, 10:49:51 AM (19 years ago)
- Location:
- trunk/psLib
- Files:
-
- 3 edited
-
src/imageops/psImageConvolve.c (modified) (3 diffs)
-
src/imageops/psImageConvolve.h (modified) (4 diffs)
-
test/imageops/convolutionBench.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/imageops/psImageConvolve.c
r14704 r14866 7 7 /// @author Eugene Magnier, IfA 8 8 /// 9 /// @version $Revision: 1.5 6$ $Name: not supported by cvs2svn $10 /// @date $Date: 2007-0 8-30 20:15:23$9 /// @version $Revision: 1.57 $ $Name: not supported by cvs2svn $ 10 /// @date $Date: 2007-09-17 20:49:51 $ 11 11 /// 12 12 /// Copyright 2004-2007 Institute for Astronomy, University of Hawaii … … 363 363 364 364 psImage *psImageConvolveFFT(const psImage *in, 365 const psImage *mask, 366 psMaskType maskVal, 365 367 const psKernel *kernel, 366 368 float pad) … … 393 395 // Generate padded image 394 396 psImage *paddedImage = psImageAlloc(paddedCols,paddedRows,in->type.type); // Padded input image 395 psImageOverlaySection(paddedImage, in, 0, 0, "="); 397 if (mask && maskVal) { 398 for (int y = 0; y < numRows; y++) { 399 for (int x = 0; x < numCols; x++) { 400 paddedImage->data.F32[y][x] = (mask->data.PS_TYPE_MASK_DATA[y][x] & maskVal) ? pad : 401 in->data.F32[y][x]; 402 } 403 } 404 } else { 405 psImageOverlaySection(paddedImage, in, 0, 0, "="); 406 } 396 407 for (int y = 0; y < numRows; y++) { 397 408 for (int x = numCols; x < paddedCols; x++) { -
trunk/psLib/src/imageops/psImageConvolve.h
r14762 r14866 5 5 * @author Robert DeSonia, MHPCC 6 6 * 7 * @version $Revision: 1.2 8$ $Name: not supported by cvs2svn $8 * @date $Date: 2007-09- 05 23:52:11 $7 * @version $Revision: 1.29 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2007-09-17 20:49:51 $ 9 9 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii 10 10 */ … … 136 136 /// 137 137 psImage *psImageConvolveDirect( 138 psImage *out, ///< return output to here139 const psImage *in, ///< the psImage to convolve138 psImage *out, ///< Output image, or NULL 139 const psImage *in, ///< Image to convolve 140 140 const psKernel *kernel ///< kernel to colvolve with 141 141 ); … … 146 146 /// are suitably padded to avoid wrap-around effects. 147 147 psImage *psImageConvolveFFT( 148 const psImage *in, ///< the psImage to convolve 148 const psImage *in, ///< Image to convolve 149 const psImage *mask, ///< Corresponding mask 150 psMaskType maskVal, ///< Value to mask 149 151 const psKernel *kernel, ///< kernel to colvolve with 150 152 float pad ///< Value to use to pad the input image … … 155 157 /// Returns a mask, grown by the supplied kernel. Only those pixels specified by the maskVal are grown; the 156 158 /// rest are simply propagated. 157 psImage *psImageConvolveMask(const psImage *mask, psMaskType maskVal, const psKernel *kernel); 159 psImage *psImageConvolveMask(const psImage *mask, ///< Mask to convolve 160 psMaskType maskVal, ///< Mask value to convolve 161 const psKernel *kernel ///< Kernel by which to convolve 162 ); 158 163 159 164 -
trunk/psLib/test/imageops/convolutionBench.c
r14332 r14866 47 47 psKernel *kernel = generateKernel(kernelCols, kernelRows); 48 48 psTimerStart("fft"); 49 psImage *convolved = psImageConvolveFFT(image, kernel, 0.0);49 psImage *convolved = psImageConvolveFFT(image, NULL, 0, kernel, 0.0); 50 50 fft += psTimerMark("fft"); 51 51 psFree(convolved);
Note:
See TracChangeset
for help on using the changeset viewer.
