From f75946a16ad3d2d5122e006b09ca14be702d9bb9 Mon Sep 17 00:00:00 2001 From: vpisarev Date: Wed, 17 Oct 2012 15:08:03 +0400 Subject: [PATCH] made opencv_ocl module build with VS2012 --- modules/ocl/CMakeLists.txt | 2 +- modules/ocl/src/brute_force_matcher.cpp | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/ocl/CMakeLists.txt b/modules/ocl/CMakeLists.txt index 194d29ab6..052501a1d 100644 --- a/modules/ocl/CMakeLists.txt +++ b/modules/ocl/CMakeLists.txt @@ -13,7 +13,7 @@ set(kernels_cpp "${CMAKE_CURRENT_BINARY_DIR}/kernels.cpp") set(cl2cpp_script "${CMAKE_CURRENT_SOURCE_DIR}/cl2cpp.py") set(cl2cpp_script_W32 "${CMAKE_CURRENT_SOURCE_DIR}/cl2cpp.js") -IF(WIN32) +IF(0) add_custom_command( OUTPUT ${kernels_cpp} COMMAND wscript.exe ${cl2cpp_script_W32} "${CMAKE_CURRENT_SOURCE_DIR}/src/kernels" ${kernels_cpp} diff --git a/modules/ocl/src/brute_force_matcher.cpp b/modules/ocl/src/brute_force_matcher.cpp index 0103d278e..371c9b20e 100644 --- a/modules/ocl/src/brute_force_matcher.cpp +++ b/modules/ocl/src/brute_force_matcher.cpp @@ -1548,7 +1548,8 @@ void cv::ocl::BruteForceMatcher_OCL_base::knnMatch(const oclMat &query, vector< temp.reserve(2 * k); matches.resize(query.rows); - for_each(matches.begin(), matches.end(), bind2nd(mem_fun_ref(&vector::reserve), k)); + for(size_t queryIdx = 0; queryIdx < matches.size(); queryIdx++ ) + matches[queryIdx].reserve(k); for (size_t imgIdx = 0, size = trainDescCollection.size(); imgIdx < size; ++imgIdx) { @@ -1572,8 +1573,15 @@ void cv::ocl::BruteForceMatcher_OCL_base::knnMatch(const oclMat &query, vector< if (compactResult) { - vector< vector >::iterator new_end = remove_if(matches.begin(), matches.end(), mem_fun_ref(&vector::empty)); - matches.erase(new_end, matches.end()); + size_t i, j = 0; + for( i = 0; i < matches.size(); i++ ) + if( !matches[i].empty() ) + { + if( i > j ) + matches[j] = matches[i]; + j++; + } + matches.resize(j); } } }