summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xWrappers/Matlab/CMakeLists.txt25
-rw-r--r--Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c26
2 files changed, 40 insertions, 11 deletions
diff --git a/Wrappers/Matlab/CMakeLists.txt b/Wrappers/Matlab/CMakeLists.txt
index 9cbade9..cd46051 100755
--- a/Wrappers/Matlab/CMakeLists.txt
+++ b/Wrappers/Matlab/CMakeLists.txt
@@ -47,17 +47,22 @@ message(STATUS "Matlab wrappers will be installed in " ${MATLAB_DEST})
file(GLOB CPU_MEX_FILES
"${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/*.c"
- "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/inpainters_CPU/*.c"
+ #"${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_GPU/*.c"
)
+#message("CPU_MEX_FILES " ${CPU_MEX_FILES})
+
list(LENGTH CPU_MEX_FILES num)
MATH(EXPR num "${num}-1")
#set(num "-1")
+message("found ${num} files")
-foreach(tgt RANGE ${num})
+foreach(tgt RANGE 0 ${num})
message("number " ${tgt})
+ list(LENGTH CPU_MEX_FILES num2)
+ message("the list is ${num2}")
#list(GET CPU_TARGETS ${tgt} current_target)
list(GET CPU_MEX_FILES ${tgt} current_file_name)
get_filename_component(current_file ${current_file_name} NAME)
@@ -70,6 +75,18 @@ foreach(tgt RANGE ${num})
NAME ${current_target}
SRC
${current_file_name}
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/FGP_TV_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/SB_TV_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/TGV_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/Diffusion_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/Diffus4th_order_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/LLT_ROF_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/ROF_TV_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/FGP_dTV_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/TNV_core.c
+ ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/utils.c
+ ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU/Diffusion_Inpaint_core.c
+ ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU/NonlocalMarching_Inpaint_core.c
LINK_TO cilreg ${Matlab_LIBRARIES}
)
@@ -79,7 +96,7 @@ target_include_directories(${current_target}
${CMAKE_SOURCE_DIR}/Core/inpainters_CPU
${CMAKE_SOURCE_DIR}/Core/
${MATLAB_INCLUDE_DIR})
-
+ set_property(TARGET ${current_target} PROPERTY C_STANDARD 99)
list(APPEND CPU_MEX_TARGETS ${current_target})
INSTALL(TARGETS ${current_target} DESTINATION "${MATLAB_DEST}")
endforeach()
@@ -126,4 +143,4 @@ if (BUILD_CUDA)
add_custom_target(MatlabWrapperGPU DEPENDS ${GPU_MEX_TARGETS})
endif()
-endif() \ No newline at end of file
+endif()
diff --git a/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c b/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c
index 6b9e1ea..ca484ba 100644
--- a/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c
+++ b/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c
@@ -1,3 +1,4 @@
+
/*
* This work is part of the Core Imaging Library developed by
* Visual Analytics and Imaging System Group of the Science Technology
@@ -43,11 +44,12 @@ void mexFunction(
int nrhs, const mxArray *prhs[])
{
- int number_of_dims, iter_numb, dimX, dimY, dimZ;
- const int *dim_array;
- float *Input, *Output=NULL, lambda, tau;
+ int number_of_dims, iter_numb, j;
+ mwSize dimX, dimY, dimZ;
+ const mwSize *dim_array_i;
+ float *Input, *Output=NULL, lambda, tau;
- dim_array = mxGetDimensions(prhs[0]);
+ dim_array_i = mxGetDimensions(prhs[0]);
number_of_dims = mxGetNumberOfDimensions(prhs[0]);
/*Handling Matlab input data*/
@@ -59,15 +61,25 @@ void mexFunction(
if (mxGetClassID(prhs[0]) != mxSINGLE_CLASS) {mexErrMsgTxt("The input image must be in a single precision"); }
if(nrhs != 4) mexErrMsgTxt("Four inputs reqired: Image(2D,3D), regularization parameter, iterations number, marching step constant");
/*Handling Matlab output data*/
- dimX = dim_array[0]; dimY = dim_array[1]; dimZ = dim_array[2];
+ dimX = dim_array_i[0]; dimY = dim_array_i[1]; dimZ = dim_array_i[2];
+
/* output arrays*/
if (number_of_dims == 2) {
+ //const mwSize dim_array[2] = {dimX, dimY};
dimZ = 1; /*2D case*/
/* output image/volume */
- Output = (float*)mxGetPr(plhs[0] = mxCreateNumericArray(2, dim_array, mxSINGLE_CLASS, mxREAL));
+ Output = (float*)mxGetPr(plhs[0] = mxCreateNumericArray(2, dim_array_i, mxSINGLE_CLASS, mxREAL));
+ //mexErrMsgTxt("Call me 72");
}
- if (number_of_dims == 3) Output = (float*)mxGetPr(plhs[0] = mxCreateNumericArray(3, dim_array, mxSINGLE_CLASS, mxREAL));
+ if (number_of_dims == 3) {
+ //const mwSize dim_array[3] = {dimX, dimY, dimZ};
+ Output = (float*)mxGetPr(plhs[0] = mxCreateNumericArray(3, dim_array_i, mxSINGLE_CLASS, mxREAL));
+ }
+
+// for(j=0; j<(int)(dimX*dimY*dimZ); j++) {
+// if (j%10 == 0) mexErrMsgTxt("WHAT???");
+// Output[j] = 2;}
TV_ROF_CPU_main(Input, Output, lambda, iter_numb, tau, dimX, dimY, dimZ);
} \ No newline at end of file