diff options
| -rw-r--r-- | Core/CMakeLists.txt | 8 | ||||
| -rw-r--r-- | Core/regularizers_CPU/FGP_TV_core.h | 21 | ||||
| -rw-r--r-- | Core/regularizers_CPU/LLT_model_core.h | 13 | ||||
| -rw-r--r-- | Core/regularizers_CPU/PatchBased_Regul_core.h | 7 | ||||
| -rw-r--r-- | Core/regularizers_CPU/SplitBregman_TV_core.h | 17 | ||||
| -rw-r--r-- | Core/regularizers_CPU/TGV_PD_core.h | 15 | ||||
| -rw-r--r-- | Core/regularizers_CPU/utils.h | 3 | ||||
| -rw-r--r-- | Core/regularizers_GPU/Diffus_HO/Diff4th_GPU_kernel.h | 3 | ||||
| -rw-r--r-- | Core/regularizers_GPU/NL_Regul/NLM_GPU_kernel.h | 3 | 
9 files changed, 53 insertions, 37 deletions
| diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 5f443b7..97f8a54 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -10,6 +10,7 @@ set (CIL_VERSION $ENV{CIL_VERSION} CACHE INTERNAL "Core Imaging Library version"  # conda orchestrated build  message("CIL_VERSION ${CIL_VERSION}") +#include (GenerateExportHeader)  find_package(PythonInterp REQUIRED)  if (PYTHONINTERP_FOUND) @@ -76,7 +77,14 @@ add_library(cilreg SHARED  target_link_libraries(cilreg ${EXTRA_LIBRARIES} )  include_directories(cilreg PUBLIC                         ${LIBRARY_INC}/include  +					  ${CMAKE_CURRENT_SOURCE_DIR}  		              ${CMAKE_CURRENT_SOURCE_DIR}/regularizers_CPU/  ) +#GENERATE_EXPORT_HEADER( cilreg +#             BASE_NAME cilreg +#             EXPORT_MACRO_NAME CCPiCore_EXPORTS +#             EXPORT_FILE_NAME CCPiCore_Exports.h +#             STATIC_DEFINE cilreg_BUILT_AS_STATIC +#)  if (UNIX)  message ("I'd install into ${CMAKE_INSTALL_PREFIX}/lib")  install(TARGETS cilreg diff --git a/Core/regularizers_CPU/FGP_TV_core.h b/Core/regularizers_CPU/FGP_TV_core.h index 6430bf2..10ea224 100644 --- a/Core/regularizers_CPU/FGP_TV_core.h +++ b/Core/regularizers_CPU/FGP_TV_core.h @@ -24,6 +24,7 @@ limitations under the License.  #include <stdio.h>  #include "omp.h"  #include "utils.h" +#include "CCPiDefines.h"  /* C-OMP implementation of FGP-TV [1] denoising/regularization model (2D/3D case)  * @@ -55,17 +56,17 @@ limitations under the License.  extern "C" {  #endif  //float copyIm(float *A, float *B, int dimX, int dimY, int dimZ); -float Obj_func2D(float *A, float *D, float *R1, float *R2, float lambda, int dimX, int dimY); -float Grad_func2D(float *P1, float *P2, float *D, float *R1, float *R2, float lambda, int dimX, int dimY); -float Proj_func2D(float *P1, float *P2, int methTV, int dimX, int dimY); -float Rupd_func2D(float *P1, float *P1_old, float *P2, float *P2_old, float *R1, float *R2, float tkp1, float tk, int dimX, int dimY); -float Obj_func_CALC2D(float *A, float *D, float *funcvalA, float lambda, int dimX, int dimY); +CCPI_EXPORT float Obj_func2D(float *A, float *D, float *R1, float *R2, float lambda, int dimX, int dimY); +CCPI_EXPORT float Grad_func2D(float *P1, float *P2, float *D, float *R1, float *R2, float lambda, int dimX, int dimY); +CCPI_EXPORT float Proj_func2D(float *P1, float *P2, int methTV, int dimX, int dimY); +CCPI_EXPORT float Rupd_func2D(float *P1, float *P1_old, float *P2, float *P2_old, float *R1, float *R2, float tkp1, float tk, int dimX, int dimY); +CCPI_EXPORT float Obj_func_CALC2D(float *A, float *D, float *funcvalA, float lambda, int dimX, int dimY); -float Obj_func3D(float *A, float *D, float *R1, float *R2, float *R3, float lambda, int dimX, int dimY, int dimZ); -float Grad_func3D(float *P1, float *P2, float *P3, float *D, float *R1, float *R2, float *R3, float lambda, int dimX, int dimY, int dimZ); -float Proj_func3D(float *P1, float *P2, float *P3, int dimX, int dimY, int dimZ); -float Rupd_func3D(float *P1, float *P1_old, float *P2, float *P2_old, float *P3, float *P3_old, float *R1, float *R2, float *R3, float tkp1, float tk, int dimX, int dimY, int dimZ); -float Obj_func_CALC3D(float *A, float *D, float *funcvalA, float lambda, int dimX, int dimY, int dimZ); +CCPI_EXPORT float Obj_func3D(float *A, float *D, float *R1, float *R2, float *R3, float lambda, int dimX, int dimY, int dimZ); +CCPI_EXPORT float Grad_func3D(float *P1, float *P2, float *P3, float *D, float *R1, float *R2, float *R3, float lambda, int dimX, int dimY, int dimZ); +CCPI_EXPORT float Proj_func3D(float *P1, float *P2, float *P3, int dimX, int dimY, int dimZ); +CCPI_EXPORT float Rupd_func3D(float *P1, float *P1_old, float *P2, float *P2_old, float *P3, float *P3_old, float *R1, float *R2, float *R3, float tkp1, float tk, int dimX, int dimY, int dimZ); +CCPI_EXPORT float Obj_func_CALC3D(float *A, float *D, float *funcvalA, float lambda, int dimX, int dimY, int dimZ);  #ifdef __cplusplus  }  #endif
\ No newline at end of file diff --git a/Core/regularizers_CPU/LLT_model_core.h b/Core/regularizers_CPU/LLT_model_core.h index 13fce5a..ee106db 100644 --- a/Core/regularizers_CPU/LLT_model_core.h +++ b/Core/regularizers_CPU/LLT_model_core.h @@ -24,6 +24,7 @@ limitations under the License.  #include <stdio.h>  #include "omp.h"  #include "utils.h" +#include "CCPiDefines.h"  #define EPS 0.01 @@ -31,14 +32,14 @@ limitations under the License.  #ifdef __cplusplus  extern "C" {  #endif -float der2D(float *U, float *D1, float *D2, int dimX, int dimY, int dimZ); -float div_upd2D(float *U0, float *U, float *D1, float *D2, int dimX, int dimY, int dimZ, float lambda, float tau); +CCPI_EXPORT float der2D(float *U, float *D1, float *D2, int dimX, int dimY, int dimZ); +CCPI_EXPORT float div_upd2D(float *U0, float *U, float *D1, float *D2, int dimX, int dimY, int dimZ, float lambda, float tau); -float der3D(float *U, float *D1, float *D2, float *D3, int dimX, int dimY, int dimZ); -float div_upd3D(float *U0, float *U, float *D1, float *D2, float *D3, unsigned short *Map, int switcher, int dimX, int dimY, int dimZ, float lambda, float tau); +CCPI_EXPORT float der3D(float *U, float *D1, float *D2, float *D3, int dimX, int dimY, int dimZ); +CCPI_EXPORT float div_upd3D(float *U0, float *U, float *D1, float *D2, float *D3, unsigned CCPI_EXPORT short *Map, int switcher, int dimX, int dimY, int dimZ, float lambda, float tau); -float calcMap(float *U, unsigned short *Map, int dimX, int dimY, int dimZ); -float cleanMap(unsigned short *Map, int dimX, int dimY, int dimZ); +CCPI_EXPORT float calcMap(float *U, unsigned short *Map, int dimX, int dimY, int dimZ); +CCPI_EXPORT float cleanMap(unsigned short *Map, int dimX, int dimY, int dimZ);  //float copyIm(float *A, float *U, int dimX, int dimY, int dimZ);  #ifdef __cplusplus diff --git a/Core/regularizers_CPU/PatchBased_Regul_core.h b/Core/regularizers_CPU/PatchBased_Regul_core.h index d4a8a46..6a13709 100644 --- a/Core/regularizers_CPU/PatchBased_Regul_core.h +++ b/Core/regularizers_CPU/PatchBased_Regul_core.h @@ -25,6 +25,7 @@ limitations under the License.  #include <memory.h>  #include <stdio.h>  #include "omp.h" +#include "CCPiDefines.h"  /* C-OMP implementation of  patch-based (PB) regularization (2D and 3D cases).  * This method finds self-similar patches in data and performs one fixed point iteration to mimimize the PB penalty function @@ -61,9 +62,9 @@ TestTemporalSmoothing.m  #ifdef __cplusplus  extern "C" {  #endif -float pad_crop(float *A, float *Ap, int OldSizeX, int OldSizeY, int OldSizeZ, int NewSizeX, int NewSizeY, int NewSizeZ, int padXY, int switchpad_crop); -float PB_FUNC2D(float *A, float *B, int dimX, int dimY, int padXY, int SearchW, int SimilW, float h, float lambda); -float PB_FUNC3D(float *A, float *B, int dimX, int dimY, int dimZ, int padXY, int SearchW, int SimilW, float h, float lambda); +CCPI_EXPORT float pad_crop(float *A, float *Ap, int OldSizeX, int OldSizeY, int OldSizeZ, int NewSizeX, int NewSizeY, int NewSizeZ, int padXY, int switchpad_crop); +CCPI_EXPORT float PB_FUNC2D(float *A, float *B, int dimX, int dimY, int padXY, int SearchW, int SimilW, float h, float lambda); +CCPI_EXPORT float PB_FUNC3D(float *A, float *B, int dimX, int dimY, int dimZ, int padXY, CCPI_EXPORT int SearchW, int SimilW, float h, float lambda);  #ifdef __cplusplus  }  #endif
\ No newline at end of file diff --git a/Core/regularizers_CPU/SplitBregman_TV_core.h b/Core/regularizers_CPU/SplitBregman_TV_core.h index 6ed3ff9..b6d914e 100644 --- a/Core/regularizers_CPU/SplitBregman_TV_core.h +++ b/Core/regularizers_CPU/SplitBregman_TV_core.h @@ -24,6 +24,7 @@ limitations under the License.  #include "omp.h"  #include "utils.h" +#include "CCPiDefines.h"  /* C-OMP implementation of Split Bregman - TV denoising-regularization model (2D/3D)  * @@ -54,15 +55,15 @@ extern "C" {  #endif  //float copyIm(float *A, float *B, int dimX, int dimY, int dimZ); -float gauss_seidel2D(float *U, float *A, float *Dx, float *Dy, float *Bx, float *By, int dimX, int dimY, float lambda, float mu); -float updDxDy_shrinkAniso2D(float *U, float *Dx, float *Dy, float *Bx, float *By, int dimX, int dimY, float lambda); -float updDxDy_shrinkIso2D(float *U, float *Dx, float *Dy, float *Bx, float *By, int dimX, int dimY, float lambda); -float updBxBy2D(float *U, float *Dx, float *Dy, float *Bx, float *By, int dimX, int dimY); +CCPI_EXPORT float gauss_seidel2D(float *U, float *A, float *Dx, float *Dy, float *Bx, float *By, int dimX, int dimY, float lambda, float mu); +CCPI_EXPORT float updDxDy_shrinkAniso2D(float *U, float *Dx, float *Dy, float *Bx, float *By, int dimX, int dimY, float lambda); +CCPI_EXPORT float updDxDy_shrinkIso2D(float *U, float *Dx, float *Dy, float *Bx, float *By, int dimX, int dimY, float lambda); +CCPI_EXPORT float updBxBy2D(float *U, float *Dx, float *Dy, float *Bx, float *By, int dimX, int dimY); -float gauss_seidel3D(float *U, float *A, float *Dx, float *Dy, float *Dz, float *Bx, float *By, float *Bz, int dimX, int dimY, int dimZ, float lambda, float mu); -float updDxDyDz_shrinkAniso3D(float *U, float *Dx, float *Dy, float *Dz, float *Bx, float *By, float *Bz, int dimX, int dimY, int dimZ, float lambda); -float updDxDyDz_shrinkIso3D(float *U, float *Dx, float *Dy, float *Dz, float *Bx, float *By, float *Bz, int dimX, int dimY, int dimZ, float lambda); -float updBxByBz3D(float *U, float *Dx, float *Dy, float *Dz, float *Bx, float *By, float *Bz, int dimX, int dimY, int dimZ); +CCPI_EXPORT float gauss_seidel3D(float *U, float *A, float *Dx, float *Dy, float *Dz, float *Bx, float *By, float *Bz, int dimX, int dimY, int dimZ, float lambda, float mu); +CCPI_EXPORT float updDxDyDz_shrinkAniso3D(float *U, float *Dx, float *Dy, float *Dz, float *Bx, float *By, float *Bz, int dimX, int dimY, int dimZ, float lambda); +CCPI_EXPORT float updDxDyDz_shrinkIso3D(float *U, float *Dx, float *Dy, float *Dz, float *Bx, float *By, float *Bz, int dimX, int dimY, int dimZ, float lambda); +CCPI_EXPORT float updBxByBz3D(float *U, float *Dx, float *Dy, float *Dz, float *Bx, float *By, float *Bz, int dimX, int dimY, int dimZ);  #ifdef __cplusplus  } diff --git a/Core/regularizers_CPU/TGV_PD_core.h b/Core/regularizers_CPU/TGV_PD_core.h index d5378df..88fbcc1 100644 --- a/Core/regularizers_CPU/TGV_PD_core.h +++ b/Core/regularizers_CPU/TGV_PD_core.h @@ -24,6 +24,7 @@ limitations under the License.  #include <stdio.h>  #include "omp.h"  #include "utils.h" +#include "CCPiDefines.h"  /* C-OMP implementation of Primal-Dual denoising method for  * Total Generilized Variation (TGV)-L2 model (2D case only) @@ -54,13 +55,13 @@ limitations under the License.  extern "C" {  #endif  /* 2D functions */ -float DualP_2D(float *U, float *V1, float *V2, float *P1, float *P2, int dimX, int dimY, int dimZ, float sigma); -float ProjP_2D(float *P1, float *P2, int dimX, int dimY, int dimZ, float alpha1); -float DualQ_2D(float *V1, float *V2, float *Q1, float *Q2, float *Q3, int dimX, int dimY, int dimZ, float sigma); -float ProjQ_2D(float *Q1, float *Q2, float *Q3, int dimX, int dimY, int dimZ, float alpha0); -float DivProjP_2D(float *U, float *A, float *P1, float *P2, int dimX, int dimY, int dimZ, float lambda, float tau); -float UpdV_2D(float *V1, float *V2, float *P1, float *P2, float *Q1, float *Q2, float *Q3, int dimX, int dimY, int dimZ, float tau); -float newU(float *U, float *U_old, int dimX, int dimY, int dimZ); +CCPI_EXPORT float DualP_2D(float *U, float *V1, float *V2, float *P1, float *P2, int dimX, int dimY, int dimZ, float sigma); +CCPI_EXPORT float ProjP_2D(float *P1, float *P2, int dimX, int dimY, int dimZ, float alpha1); +CCPI_EXPORT float DualQ_2D(float *V1, float *V2, float *Q1, float *Q2, float *Q3, int dimX, int dimY, int dimZ, float sigma); +CCPI_EXPORT float ProjQ_2D(float *Q1, float *Q2, float *Q3, int dimX, int dimY, int dimZ, float alpha0); +CCPI_EXPORT float DivProjP_2D(float *U, float *A, float *P1, float *P2, int dimX, int dimY, int dimZ, float lambda, float tau); +CCPI_EXPORT float UpdV_2D(float *V1, float *V2, float *P1, float *P2, float *Q1, float *Q2, float *Q3, int dimX, int dimY, int dimZ, float tau); +CCPI_EXPORT float newU(float *U, float *U_old, int dimX, int dimY, int dimZ);  //float copyIm(float *A, float *U, int dimX, int dimY, int dimZ);  #ifdef __cplusplus  } diff --git a/Core/regularizers_CPU/utils.h b/Core/regularizers_CPU/utils.h index 53463a3..91b8209 100644 --- a/Core/regularizers_CPU/utils.h +++ b/Core/regularizers_CPU/utils.h @@ -21,12 +21,13 @@ limitations under the License.  //#include <math.h>  #include <stdlib.h>  #include <memory.h> +#include "CCPiDefines.h"  //#include <stdio.h>  #include "omp.h"  #ifdef __cplusplus  extern "C" {  #endif -float copyIm(float *A, float *U, int dimX, int dimY, int dimZ); +CCPI_EXPORT float copyIm(float *A, float *U, int dimX, int dimY, int dimZ);  #ifdef __cplusplus  }  #endif diff --git a/Core/regularizers_GPU/Diffus_HO/Diff4th_GPU_kernel.h b/Core/regularizers_GPU/Diffus_HO/Diff4th_GPU_kernel.h index cfbb45a..fefef8d 100644 --- a/Core/regularizers_GPU/Diffus_HO/Diff4th_GPU_kernel.h +++ b/Core/regularizers_GPU/Diffus_HO/Diff4th_GPU_kernel.h @@ -1,6 +1,7 @@  #ifndef __DIFF_HO_H_  #define __DIFF_HO_H_ +#include "CCPiDefines.h" -extern "C" void Diff4th_GPU_kernel(float* A, float* B, int N, int M, int Z, float sigma, int iter, float tau, float lambda); +extern "C" CCPI_EXPORT void Diff4th_GPU_kernel(float* A, float* B, int N, int M, int Z, float sigma, int iter, float tau, float lambda);  #endif  diff --git a/Core/regularizers_GPU/NL_Regul/NLM_GPU_kernel.h b/Core/regularizers_GPU/NL_Regul/NLM_GPU_kernel.h index bc9d4a3..f370d0d 100644 --- a/Core/regularizers_GPU/NL_Regul/NLM_GPU_kernel.h +++ b/Core/regularizers_GPU/NL_Regul/NLM_GPU_kernel.h @@ -1,6 +1,7 @@  #ifndef __NLMREG_KERNELS_H_  #define __NLMREG_KERNELS_H_ +#include "CCPiDefines.h" -extern "C" void NLM_GPU_kernel(float *A, float* B, float *Eucl_Vec, int N, int M, int Z, int dimension, int SearchW, int SimilW, int SearchW_real, float denh2, float lambda); +extern "C" CCPI_EXPORT void NLM_GPU_kernel(float *A, float* B, float *Eucl_Vec, int N, int M, int Z, int dimension, int SearchW, int SimilW, int SearchW_real, float denh2, float lambda);  #endif  | 
