/home/cquammen/packages/Clarity/include/Clarity.h

Go to the documentation of this file.
00001 #ifndef __CLARITY_LIB_H_
00002 #define __CLARITY_LIB_H_
00003 
00018 #ifdef __cplusplus
00019 # if defined(WIN32) && defined(CLARITY_SHARED_LIB)
00020 #  ifdef Clarity_EXPORTS
00021 #   define C_FUNC_DEF extern "C" __declspec(dllexport)
00022 #  else
00023 #   define C_FUNC_DEF extern "C" __declspec(dllimport)
00024 #  endif
00025 # else
00026 #  define C_FUNC_DEF extern "C"
00027 # endif
00028 #else
00029 # if defined(WIN32) && defined(CLARITY_SHARED_LIB)
00030 #  ifdef Clarity_EXPORTS
00031 #   define C_FUNC_DEF __declspec(dllexport)
00032 #  else
00033 #   define C_FUNC_DEF __declspec(dllimport)
00034 #  endif
00035 # else
00036 #  define C_FUNC_DEF
00037 # endif
00038 #endif
00039 
00040 #ifndef NULL
00041 #define NULL 0L
00042 #endif
00043 
00046 typedef enum {
00047    CLARITY_FFT_FAILED,            
00049    CLARITY_OUT_OF_MEMORY,         
00051    CLARITY_DEVICE_OUT_OF_MEMORY,  
00053    CLARITY_INVALID_OPERATION,     
00055    CLARITY_INVALID_ARGUMENT,      
00056    CLARITY_SUCCESS                
00057 } ClarityResult_t;
00058 
00059 
00060 /*****************************/
00061 /***** TYPES *****************/
00062 /*****************************/
00063 
00065 typedef struct _Clarity_Dim3_t {
00066    int x;
00067    int y;
00068    int z;
00069 } Clarity_Dim3;
00070 
00071 
00078 C_FUNC_DEF
00079 Clarity_Dim3
00080 Clarity_Dim3FromArray(int dimArray[3]);
00081 
00082 
00083 /*****************************/
00084 /***** UTILITY FUNCTIONS *****/
00085 /*****************************/
00086 
00092 C_FUNC_DEF
00093 ClarityResult_t
00094 Clarity_Register();
00095 
00096 
00102 C_FUNC_DEF
00103 ClarityResult_t
00104 Clarity_UnRegister();
00105 
00106 
00115 C_FUNC_DEF
00116 ClarityResult_t
00117 Clarity_SetNumberOfThreads(unsigned n);
00118 
00119 
00136 C_FUNC_DEF
00137 ClarityResult_t
00138 Clarity_ImagePadSpatialShift(float *dst, Clarity_Dim3 dstDim, 
00139                              float *src, Clarity_Dim3 srcDim,
00140                              int shift[3], float fillValue);
00141 
00155 C_FUNC_DEF
00156 ClarityResult_t
00157 Clarity_ImageClip(float *dst, Clarity_Dim3 dstDim, float *src, Clarity_Dim3 srcDim);
00158 
00159 
00160 /***********************************/
00161 /***** DECONVOLUTION FUNCTIONS *****/
00162 /***********************************/
00163 
00181 C_FUNC_DEF
00182 ClarityResult_t 
00183 Clarity_WienerDeconvolve(float* inImage, Clarity_Dim3 imageDim,
00184        float* kernelImage, Clarity_Dim3 kernelDim,
00185        float* outImage, float epsilon);
00186 
00187 
00202 C_FUNC_DEF
00203 ClarityResult_t 
00204 Clarity_JansenVanCittertDeconvolve(float* inImage, Clarity_Dim3 imageDim,
00205            float* kernelImage, Clarity_Dim3 kernelDim,
00206            float* outImage, int iterations);
00207 
00230 C_FUNC_DEF
00231 ClarityResult_t 
00232 Clarity_SmoothedJansenVanCittertDeconvolve(
00233   float* inImage, Clarity_Dim3 imageDim, 
00234   float* kernelImage, Clarity_Dim3 kernelDim,
00235   float* outImage, unsigned iterations, unsigned smoothInterval,
00236   float* smoothSigma[3]);
00237 
00238 
00259 C_FUNC_DEF
00260 ClarityResult_t
00261 Clarity_IDivergenceDeconvolve(
00262   float* inImage, Clarity_Dim3 imageDim,
00263   float* kernelImage, Clarity_Dim3 kernelDim,
00264   float* outImage);
00265 
00266 
00282 C_FUNC_DEF
00283 ClarityResult_t
00284 Clarity_MaximumLikelihoodDeconvolve(float* inImage, Clarity_Dim3 imageDim,
00285             float* kernelImage, Clarity_Dim3 kernelDim,
00286             float* outImage, int iterations);
00287 
00301 C_FUNC_DEF
00302 ClarityResult_t
00303 Clarity_BlindMaximumLikelihoodDeconvolve(float* outImage, float* inImage, float* psfImage,
00304                                          Clarity_Dim3 dim, unsigned iterations);
00305 
00306 
00307 /*************************/
00308 /* CONVOLUTION FUNCTIONS */
00309 /*************************/
00310 
00320 C_FUNC_DEF
00321 ClarityResult_t
00322 Clarity_Convolve(float* inImage, Clarity_Dim3 imageDim,
00323      float* kernel, Clarity_Dim3 kernelDim,
00324      float* outImage);
00325 
00326 
00327 #endif // __CLARITY_LIB_H_

Generated on Fri Dec 12 13:47:07 2008 for Clarity by  doxygen 1.4.7