From cb63046dcfd12949424fd8bafc6d4da272726dff Mon Sep 17 00:00:00 2001 From: Anatoly Baksheev Date: Mon, 17 Jan 2011 11:32:38 +0000 Subject: [PATCH] gpu face detetcion: 1) fixed bug with error codes (enum NppStStatus) shift. 2) added some asserts --- 3rdparty/NPP_staging/npp_staging.h | 16 ++++++++-------- modules/gpu/src/cascadeclassifier.cpp | 2 ++ samples/gpu/cascadeclassifier.cpp | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/3rdparty/NPP_staging/npp_staging.h b/3rdparty/NPP_staging/npp_staging.h index a9c6607dff..6bb1e67d59 100644 --- a/3rdparty/NPP_staging/npp_staging.h +++ b/3rdparty/NPP_staging/npp_staging.h @@ -188,14 +188,14 @@ struct NppStSize32u enum NppStStatus { //already present in NPP - //NPP_SUCCESS = 0, ///< Successful operation (same as NPP_NO_ERROR) - //NPP_ERROR = -1, ///< Unknown error - //NPP_CUDA_KERNEL_EXECUTION_ERROR = -3, ///< CUDA kernel execution error - //NPP_NULL_POINTER_ERROR = -4, ///< NULL pointer argument error - //NPP_TEXTURE_BIND_ERROR = -24, ///< CUDA texture binding error or non-zero offset returned - //NPP_MEMCPY_ERROR = -13, ///< CUDA memory copy error - //NPP_MEM_ALLOC_ERR = -12, ///< CUDA memory allocation error - //NPP_MEMFREE_ERR = -15, ///< CUDA memory deallocation error + __NPP_SUCCESS = 0, ///< Successful operation (same as NPP_NO_ERROR) + __NPP_ERROR = -1, ///< Unknown error + __NPP_CUDA_KERNEL_EXECUTION_ERROR = -3, ///< CUDA kernel execution error + __NPP_NULL_POINTER_ERROR = -4, ///< NULL pointer argument error + __NPP_TEXTURE_BIND_ERROR = -24, ///< CUDA texture binding error or non-zero offset returned + __NPP_MEMCPY_ERROR = -13, ///< CUDA memory copy error + __NPP_MEM_ALLOC_ERR = -12, ///< CUDA memory allocation error + __NPP_MEMFREE_ERR = -15, ///< CUDA memory deallocation error //to be added NPP_INVALID_ROI, ///< Invalid region of interest argument diff --git a/modules/gpu/src/cascadeclassifier.cpp b/modules/gpu/src/cascadeclassifier.cpp index 3a7d2ca47d..ec24b282df 100644 --- a/modules/gpu/src/cascadeclassifier.cpp +++ b/modules/gpu/src/cascadeclassifier.cpp @@ -89,6 +89,7 @@ struct cv::gpu::CascadeClassifier_GPU::CascadeClassifierImpl src_seg.size = src.step * src.rows; NCVMatrixReuse d_src(src_seg, devProp.textureAlignment, src.cols, src.rows, src.step, true); + ncvAssertReturn(d_src.isMemReused(), NCV_ALLOCATOR_BAD_REUSE); //NCVMatrixAlloc d_src(*gpuAllocator, src.cols, src.rows); //ncvAssertReturn(d_src.isMemAllocated(), NCV_ALLOCATOR_BAD_ALLOC); @@ -106,6 +107,7 @@ struct cv::gpu::CascadeClassifier_GPU::CascadeClassifierImpl objects_seg.begin = objects_beg; objects_seg.size = objects.step * objects.rows; NCVVectorReuse d_rects(objects_seg, objects.cols); + ncvAssertReturn(d_rects.isMemReused(), NCV_ALLOCATOR_BAD_REUSE); //NCVVectorAlloc d_rects(*gpuAllocator, 100); //ncvAssertReturn(d_rects.isMemAllocated(), NCV_ALLOCATOR_BAD_ALLOC); diff --git a/samples/gpu/cascadeclassifier.cpp b/samples/gpu/cascadeclassifier.cpp index 7f0a0e74db..4e1faac117 100644 --- a/samples/gpu/cascadeclassifier.cpp +++ b/samples/gpu/cascadeclassifier.cpp @@ -84,7 +84,7 @@ int main( int argc, const char** argv ) /* parameters */ bool useGPU = true; - double scale_factor = 2; + double scale_factor = 1; bool visualizeInPlace = false; bool findLargestObject = false;