Commit 5ea8591c362bee4b1fce73b1bda682582e20c8bf

Authored by Colin Heinzmann
1 parent b17fcc31

fixded PCA issues

openbr/plugins/cuda/cudapca.cpp
@@ -33,6 +33,7 @@ using namespace cv; @@ -33,6 +33,7 @@ using namespace cv;
33 // definitions from the CUDA source file 33 // definitions from the CUDA source file
34 namespace br { namespace cuda { namespace pca { 34 namespace br { namespace cuda { namespace pca {
35 void initializeWrapper(float* evPtr, int evRows, int evCols, float* meanPtr, int meanElems); 35 void initializeWrapper(float* evPtr, int evRows, int evCols, float* meanPtr, int meanElems);
  36 + void trainWrapper(void* cudaSrc, float* dst, int rows, int cols);
36 void wrapper(void* src, void** dst); 37 void wrapper(void* src, void** dst);
37 }}} 38 }}}
38 39
@@ -94,6 +95,7 @@ private: @@ -94,6 +95,7 @@ private:
94 int type = *((int*)srcDataPtr[3]); 95 int type = *((int*)srcDataPtr[3]);
95 96
96 Mat mat = Mat(rows, cols, type); 97 Mat mat = Mat(rows, cols, type);
  98 + br::cuda::pca::trainWrapper(cudaMemPtr, mat.ptr<float>(), rows, cols);
97 trainingQlist.append(Template(mat)); 99 trainingQlist.append(Template(mat));
98 } 100 }
99 101
openbr/plugins/cuda/cudapca.cu
@@ -111,6 +111,11 @@ namespace br { namespace cuda { namespace pca { @@ -111,6 +111,11 @@ namespace br { namespace cuda { namespace pca {
111 CUDA_SAFE_MALLOC(&intermediaryBuffer, _numSteps*_evCols*sizeof(float), &err); 111 CUDA_SAFE_MALLOC(&intermediaryBuffer, _numSteps*_evCols*sizeof(float), &err);
112 } 112 }
113 113
  114 + void trainWrapper(void* cudaSrc, float* data, int rows, int cols) {
  115 + cudaError_t err;
  116 + CUDA_SAFE_MEMCPY(data, cudaSrc, rows*cols*sizeof(float), cudaMemcpyDeviceToHost, &err);
  117 + }
  118 +
114 void wrapper(void* src, void** dst) { 119 void wrapper(void* src, void** dst) {
115 cudaError_t err; 120 cudaError_t err;
116 CUDA_SAFE_MALLOC(dst, _evCols*sizeof(float), &err); 121 CUDA_SAFE_MALLOC(dst, _evCols*sizeof(float), &err);