Commit e5a544f0fb25f32f0baadc80036cf4739c089c36
1 parent
4417e084
Finish CUDARGB2GrayScale plugin
Showing
4 changed files
with
9 additions
and
33 deletions
openbr/plugins/cuda/copyto.cpp
| ... | ... | @@ -26,9 +26,6 @@ private: |
| 26 | 26 | const Mat& srcMat = src.m(); |
| 27 | 27 | const int rows = srcMat.rows; |
| 28 | 28 | const int cols = srcMat.cols; |
| 29 | -std::cout << "CopyTo" << std::endl; | |
| 30 | - std::cout << "rows: " << rows << std::endl; | |
| 31 | - std::cout << "cols: " << cols << std::endl; | |
| 32 | 29 | |
| 33 | 30 | // output will be a single pointer to graphics card memory |
| 34 | 31 | Mat dstMat = Mat(4, 1, DataType<void*>::type); | ... | ... |
openbr/plugins/cuda/cudadefines.hpp
| ... | ... | @@ -16,7 +16,7 @@ using namespace std; |
| 16 | 16 | cout << pthread_self() << ": CUDA Malloc Error(" << *errPtr << "): " << cudaGetErrorString(*errPtr) << endl; \ |
| 17 | 17 | throw 0; \ |
| 18 | 18 | } \ |
| 19 | - cout << pthread_self() << ": CUDA Malloc: " << (void*)*(int**)cudaPtrPtr << endl; | |
| 19 | + //cout << pthread_self() << ": CUDA Malloc: " << (void*)*(int**)cudaPtrPtr << endl; | |
| 20 | 20 | |
| 21 | 21 | #define CUDA_SAFE_MEMCPY(dstPtr, srcPtr, count, kind, errPtr) \ |
| 22 | 22 | *errPtr = cudaMemcpy(dstPtr, srcPtr, count, kind); \ | ... | ... |
openbr/plugins/cuda/cudacvt.cpp renamed to openbr/plugins/cuda/cudargb2grayscale.cpp
| ... | ... | @@ -26,7 +26,7 @@ |
| 26 | 26 | using namespace cv; |
| 27 | 27 | |
| 28 | 28 | namespace br { namespace cuda{ |
| 29 | - void cudacvt_wrapper(void* srcPtr, void**dstPtr, int rows, int cols); | |
| 29 | + void cudargb2grayscale_wrapper(void* srcPtr, void**dstPtr, int rows, int cols); | |
| 30 | 30 | }} |
| 31 | 31 | |
| 32 | 32 | namespace br |
| ... | ... | @@ -37,38 +37,19 @@ namespace br |
| 37 | 37 | * \brief Colorspace conversion. |
| 38 | 38 | * \author Li Li \cite Josh Klontz \cite jklontz |
| 39 | 39 | */ |
| 40 | -class CUDACvtTransform : public UntrainableTransform | |
| 40 | +class CUDARGB2GrayScaleTransform : public UntrainableTransform | |
| 41 | 41 | { |
| 42 | 42 | Q_OBJECT |
| 43 | - Q_ENUMS(ColorSpace) | |
| 44 | - Q_PROPERTY(ColorSpace colorSpace READ get_colorSpace WRITE set_colorSpace RESET reset_colorSpace STORED false) | |
| 45 | - Q_PROPERTY(int channel READ get_channel WRITE set_channel RESET reset_channel STORED false) | |
| 46 | 43 | |
| 47 | 44 | public: |
| 48 | - enum ColorSpace { Gray = CV_BGR2GRAY, | |
| 49 | - RGBGray = CV_RGB2GRAY, | |
| 50 | - HLS = CV_BGR2HLS, | |
| 51 | - HSV = CV_BGR2HSV, | |
| 52 | - Lab = CV_BGR2Lab, | |
| 53 | - Luv = CV_BGR2Luv, | |
| 54 | - RGB = CV_BGR2RGB, | |
| 55 | - XYZ = CV_BGR2XYZ, | |
| 56 | - YCrCb = CV_BGR2YCrCb, | |
| 57 | - Color = CV_GRAY2BGR }; | |
| 58 | 45 | |
| 59 | 46 | private: |
| 60 | - BR_PROPERTY(ColorSpace, colorSpace, Gray) | |
| 61 | - BR_PROPERTY(int, channel, -1) | |
| 62 | - | |
| 63 | 47 | void project(const Template &src, Template &dst) const |
| 64 | 48 | { |
| 65 | 49 | void* const* srcDataPtr = src.m().ptr<void*>(); |
| 66 | 50 | int rows = *((int*) srcDataPtr[1]); |
| 67 | 51 | int cols = *((int*) srcDataPtr[2]); |
| 68 | 52 | int type = *((int*) srcDataPtr[3]); |
| 69 | - std::cout << "CVT" << std::endl; | |
| 70 | - std::cout << "rows: " << rows << std::endl; | |
| 71 | - std::cout << "cols: " << cols << std::endl; | |
| 72 | 53 | |
| 73 | 54 | Mat dstMat = Mat(src.m().rows, src.m().cols, src.m().type()); |
| 74 | 55 | void** dstDataPtr = dstMat.ptr<void*>(); |
| ... | ... | @@ -77,7 +58,7 @@ private: |
| 77 | 58 | dstDataPtr[3] = srcDataPtr[3]; |
| 78 | 59 | *((int*)dstDataPtr[3]) = CV_8UC1; // not sure if the type of the new mat is the same |
| 79 | 60 | |
| 80 | - br::cuda::cudacvt_wrapper(srcDataPtr[0], &dstDataPtr[0], rows, cols); | |
| 61 | + br::cuda::cudargb2grayscale_wrapper(srcDataPtr[0], &dstDataPtr[0], rows, cols); | |
| 81 | 62 | dst = dstMat; |
| 82 | 63 | |
| 83 | 64 | /* |
| ... | ... | @@ -92,8 +73,8 @@ private: |
| 92 | 73 | } |
| 93 | 74 | }; |
| 94 | 75 | |
| 95 | -BR_REGISTER(Transform, CUDACvtTransform) | |
| 76 | +BR_REGISTER(Transform, CUDARGB2GrayScaleTransform) | |
| 96 | 77 | |
| 97 | 78 | } // namespace br |
| 98 | 79 | |
| 99 | -#include "imgproc/cudacvt.moc" | |
| 80 | +#include "imgproc/cudargb2grayscale.moc" | ... | ... |
openbr/plugins/cuda/cudacvt.cu renamed to openbr/plugins/cuda/cudargb2grayscale.cu
| ... | ... | @@ -14,7 +14,7 @@ using namespace cv::gpu; |
| 14 | 14 | |
| 15 | 15 | namespace br{ namespace cuda { |
| 16 | 16 | |
| 17 | - __global__ void cudacvt_kernel(uint8_t* srcPtr, uint8_t* dstPtr, int rows, int cols) | |
| 17 | + __global__ void cudargb2grayscale_kernel(uint8_t* srcPtr, uint8_t* dstPtr, int rows, int cols) | |
| 18 | 18 | { |
| 19 | 19 | int rowInd = blockIdx.y*blockDim.y+threadIdx.y; |
| 20 | 20 | int colInd = blockIdx.x*blockDim.x+threadIdx.x; |
| ... | ... | @@ -31,17 +31,15 @@ namespace br{ namespace cuda { |
| 31 | 31 | return; |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | - void cudacvt_wrapper(void* srcPtr, void** dstPtr, int rows, int cols) | |
| 34 | + void cudargb2grayscale_wrapper(void* srcPtr, void** dstPtr, int rows, int cols) | |
| 35 | 35 | { |
| 36 | 36 | cudaError_t err; |
| 37 | 37 | dim3 threadsPerBlock(8, 8); |
| 38 | 38 | dim3 numBlocks(cols/threadsPerBlock.x + 1, |
| 39 | 39 | rows/threadsPerBlock.y + 1); |
| 40 | - std::cout << "Before malloc" << std::endl; | |
| 41 | 40 | CUDA_SAFE_MALLOC(dstPtr, rows*cols*sizeof(uint8_t), &err); |
| 42 | - std::cout << "After malloc" << std::endl; | |
| 43 | 41 | |
| 44 | - cudacvt_kernel<<<numBlocks, threadsPerBlock>>>((uint8_t*)srcPtr, (uint8_t*) (*dstPtr), rows, cols); | |
| 42 | + cudargb2grayscale_kernel<<<numBlocks, threadsPerBlock>>>((uint8_t*)srcPtr, (uint8_t*) (*dstPtr), rows, cols); | |
| 45 | 43 | CUDA_KERNEL_ERR_CHK(&err); |
| 46 | 44 | CUDA_SAFE_FREE(srcPtr, &err); |
| 47 | 45 | } | ... | ... |