39 #ifndef __usPreScanToPostScan3DConverter_h_
40 #define __usPreScanToPostScan3DConverter_h_
45 #include <visp3/ustk_core/usConfig.h>
46 #include <visp3/ustk_core/usImagePostScan3D.h>
47 #include <visp3/ustk_core/usImagePreScan3D.h>
121 GPU_REDUCED_LOOKUP_TABLE
122 } usConverterOptimizationMethod;
124 #ifndef DOXYGEN_SHOULD_SKIP_THIS
125 class usVoxelWeightAndIndex
128 unsigned int m_outputIndex;
129 unsigned int m_inputIndex[8];
132 class usVoxelWeightAndIndexReducedMemory
135 unsigned int m_outputIndex;
136 unsigned int m_inputIndex;
179 void convertPreScanCoordToPostScanCoord(
double i_preScan,
double j_preScan,
double k_preScan,
180 double *i_postScan = NULL,
double *j_postScan = NULL,
181 double *k_postScan = NULL,
bool sweepInZdirection =
true);
182 void convertPostScanCoordToPreScanCoord(
double x,
double y,
double z,
double *i = NULL,
double *j = NULL,
183 double *k = NULL,
bool sweepInZdirection =
true);
184 #ifdef USTK_HAVE_CUDA
185 void GPUDirectConversion(
unsigned char *dataPost,
const unsigned char *dataPre);
187 void GPUFreeLookupTables();
189 void GPUAllocateFullLookupTables();
190 void GPUFillFullLookupTables();
191 void GPUFullLookupTableConversion(
unsigned char *dataPost,
const unsigned char *dataPre);
193 void GPUAllocateReducedLookupTables();
194 void GPUFillReducedLookupTables();
195 void GPUReducedLookupTableConversion(
unsigned char *dataPost,
const unsigned char *dataPre);
double getResolution() const
std::vector< usVoxelWeightAndIndex > m_lookupTables[2]
usImagePreScan3D< unsigned char > m_VpreScan
void init(const usImagePreScan3D< unsigned char > &preScanImage, double down=1)
usConverterOptimizationMethod m_converterOptimizationMethod
void convert(usImagePostScan3D< unsigned char > &postScanImage, const usImagePreScan3D< unsigned char > &preScanImage)
std::vector< usVoxelWeightAndIndexReducedMemory > m_reducedLookupTables[2]
usConverterOptimizationMethod
@ SINGLE_THREAD_REDUCED_LOOKUP_TABLE
@ MULTI_THREAD_FULL_LOOKUP_TABLE
@ MULTI_THREAD_DIRECT_CONVERSION
@ MULTI_THREAD_REDUCED_LOOKUP_TABLE
@ SINGLE_THREAD_DIRECT_CONVERSION
@ SINGLE_THREAD_FULL_LOOKUP_TABLE
void * m_GPULookupTables[2]
virtual ~usPreScanToPostScan3DConverter()
void SweepInZdirection(bool flag)
long int m_GPULookupTablesSize[2]
usConverterOptimizationMethod m_conversionOptimizationMethodUsedAtInit
double m_downSamplingFactor
usPreScanToPostScan3DConverter()
usConverterOptimizationMethod setConverterOptimizationMethod() const