diff --git a/CMakeLists.txt b/CMakeLists.txt index 86263405bb..d02a11193c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -314,6 +314,9 @@ endif() # Detect 3rd-party tools and libraries # ---------------------------------------------------------------------------- +# IO libraries +include(cmake/OpenCVIOLibs.cmake REQUIRED) + #Graphic libraries set(HAVE_OPENGL 0) if(UNIX) @@ -433,9 +436,6 @@ if(UNIX) endif() endif() -# IO libraries -include(cmake/OpenCVIOLibs.cmake REQUIRED) - #################### LATEX for dpf documentation ################## if(BUILD_DOCS) include(cmake/OpenCVFindLATEX.cmake REQUIRED) @@ -814,7 +814,7 @@ status(" Python interpreter:" PYTHON_EXECUTABLE THEN "${PYTHON_EXECUTAB status("") status(" Interfaces:") status(" Python:" HAVE_opencv_python THEN YES ELSE NO) -status(" Python numpy:" PYTHON_USE_NUMPY THEN YES ELSE "NO (Python wrappers will not be generated)") +status(" Python numpy:" PYTHON_USE_NUMPY THEN YES ELSE "NO (Python wrappers can not be generated)") if(ANDROID) status(" Java:" HAVE_opencv_java THEN YES ELSE NO) endif() diff --git a/cmake/OpenCVDetectPython.cmake b/cmake/OpenCVDetectPython.cmake index ccf5e7f639..310fdb4c60 100644 --- a/cmake/OpenCVDetectPython.cmake +++ b/cmake/OpenCVDetectPython.cmake @@ -1,59 +1,70 @@ find_host_package(PythonInterp) -find_host_package(PythonLibs) - -# cmake 2.4 (at least on Ubuntu 8.04 (hardy)) don't define PYTHONLIBS_FOUND -if(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH) - set(PYTHONLIBS_FOUND ON) -endif() - -execute_process(COMMAND ${PYTHON_EXECUTABLE} --version - ERROR_VARIABLE PYTHON_VERSION_FULL - OUTPUT_STRIP_TRAILING_WHITESPACE) - -string(REGEX MATCH "[0-9]+.[0-9]+" PYTHON_VERSION_MAJOR_MINOR "${PYTHON_VERSION_FULL}") -if(CMAKE_HOST_UNIX) - execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import *; print get_python_lib()" - RESULT_VARIABLE PYTHON_CVPY_PROCESS - OUTPUT_VARIABLE PYTHON_STD_PACKAGES_PATH - OUTPUT_STRIP_TRAILING_WHITESPACE) - if("${PYTHON_STD_PACKAGES_PATH}" MATCHES "site-packages") - set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages CACHE PATH "Where to install the python packages.") - else() #debian based assumed, install to the dist-packages. - set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/dist-packages CACHE PATH "Where to install the python packages.") - endif() -endif() - -if(CMAKE_HOST_WIN32) - get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE) - set(PYTHON_PACKAGES_PATH "${PYTHON_PATH}/Lib/site-packages") -endif() - -# Attempt to discover the NumPy include directory. If this succeeds, then build python API with NumPy -execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print numpy.distutils.misc_util.get_numpy_include_dirs()[0]" - RESULT_VARIABLE PYTHON_NUMPY_PROCESS - OUTPUT_VARIABLE PYTHON_NUMPY_INCLUDE_DIRS - OUTPUT_STRIP_TRAILING_WHITESPACE) - -if(PYTHON_NUMPY_PROCESS EQUAL 0) - set(PYTHON_USE_NUMPY 1) - add_definitions(-DPYTHON_USE_NUMPY=1) - include_directories(AFTER ${PYTHON_NUMPY_INCLUDE_DIRS}) - message(STATUS " Use NumPy headers from: ${PYTHON_NUMPY_INCLUDE_DIRS}") -else() - set(PYTHON_USE_NUMPY 0) -endif() - -# look for Sphinx -execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sphinx; print sphinx.__version__" - RESULT_VARIABLE SPHINX_PROCESS - OUTPUT_VARIABLE SPHINX_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE) +set(PYTHON_USE_NUMPY 0) set(HAVE_SPHINX 0) -if(SPHINX_PROCESS EQUAL 0) - find_host_program(SPHINX_BUILD sphinx-build) - if(SPHINX_BUILD) - set(HAVE_SPHINX 1) - message(STATUS " Found Sphinx ${SPHINX_VERSION}: ${SPHINX_BUILD}") + +if(PYTHON_EXECUTABLE) + if(NOT ANDROID AND NOT IOS) + find_host_package(PythonLibs) + # cmake 2.4 (at least on Ubuntu 8.04 (hardy)) don't define PYTHONLIBS_FOUND + if(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH) + set(PYTHONLIBS_FOUND ON) + endif() + endif() + + execute_process(COMMAND ${PYTHON_EXECUTABLE} --version + ERROR_VARIABLE PYTHON_VERSION_FULL + OUTPUT_STRIP_TRAILING_WHITESPACE) + + string(REGEX MATCH "[0-9]+.[0-9]+" PYTHON_VERSION_MAJOR_MINOR "${PYTHON_VERSION_FULL}") + if(CMAKE_HOST_UNIX) + execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import *; print get_python_lib()" + RESULT_VARIABLE PYTHON_CVPY_PROCESS + OUTPUT_VARIABLE PYTHON_STD_PACKAGES_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE) + if("${PYTHON_STD_PACKAGES_PATH}" MATCHES "site-packages") + set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages CACHE PATH "Where to install the python packages.") + else() #debian based assumed, install to the dist-packages. + set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/dist-packages CACHE PATH "Where to install the python packages.") + endif() + elseif(CMAKE_HOST_WIN32) + get_filename_component(PYTHON_PATH "${PYTHON_EXECUTABLE}" PATH CACHE) + if(NOT EXISTS "${PYTHON_PATH}/Lib/site-packages") + unset(PYTHON_PATH) + get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE) + endif() + set(PYTHON_PACKAGES_PATH "${PYTHON_PATH}/Lib/site-packages") endif() -endif() + + if(NOT ANDROID AND NOT IOS) + # Attempt to discover the NumPy include directory. If this succeeds, then build python API with NumPy + execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print numpy.distutils.misc_util.get_numpy_include_dirs()[0]" + RESULT_VARIABLE PYTHON_NUMPY_PROCESS + OUTPUT_VARIABLE PYTHON_NUMPY_INCLUDE_DIRS + OUTPUT_STRIP_TRAILING_WHITESPACE) + + if(PYTHON_NUMPY_PROCESS EQUAL 0) + set(PYTHON_USE_NUMPY 1) + add_definitions(-DPYTHON_USE_NUMPY=1) + include_directories(AFTER ${PYTHON_NUMPY_INCLUDE_DIRS}) + message(STATUS " Use NumPy headers from: ${PYTHON_NUMPY_INCLUDE_DIRS}") + endif() + endif() + + if(BUILD_DOCS) + # look for Sphinx + execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sphinx; print sphinx.__version__" + RESULT_VARIABLE SPHINX_PROCESS + OUTPUT_VARIABLE SPHINX_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + + + if(SPHINX_PROCESS EQUAL 0) + find_host_program(SPHINX_BUILD sphinx-build) + if(SPHINX_BUILD) + set(HAVE_SPHINX 1) + message(STATUS " Found Sphinx ${SPHINX_VERSION}: ${SPHINX_BUILD}") + endif() + endif() + endif(BUILD_DOCS) +endif(PYTHON_EXECUTABLE) diff --git a/modules/imgproc/test/test_thresh.cpp b/modules/imgproc/test/test_thresh.cpp index 7bac700797..0b8d381031 100644 --- a/modules/imgproc/test/test_thresh.cpp +++ b/modules/imgproc/test/test_thresh.cpp @@ -124,17 +124,23 @@ static void test_threshold( const Mat& _src, Mat& _dst, int i, j; int depth = _src.depth(), cn = _src.channels(); int width_n = _src.cols*cn, height = _src.rows; - int ithresh = cvFloor(thresh), ithresh2, imaxval = cvRound(maxval); + int ithresh = cvFloor(thresh); + int imaxval, ithresh2; if( depth == CV_8U ) { ithresh2 = saturate_cast(ithresh); - imaxval = saturate_cast(imaxval); + imaxval = saturate_cast(maxval); } else if( depth == CV_16S ) { ithresh2 = saturate_cast(ithresh); - imaxval = saturate_cast(imaxval); + imaxval = saturate_cast(maxval); + } + else + { + ithresh2 = cvRound(ithresh); + imaxval = cvRound(maxval); } assert( depth == CV_8U || depth == CV_16S || depth == CV_32F ); diff --git a/samples/cpp/brief_match_test.cpp b/samples/cpp/brief_match_test.cpp index 6dec5edfd3..8a6574a7d3 100644 --- a/samples/cpp/brief_match_test.cpp +++ b/samples/cpp/brief_match_test.cpp @@ -117,7 +117,7 @@ int main(int argc, const char ** argv) Mat outimg; drawMatches(im2, kpts_2, im1, kpts_1, matches_popcount, outimg, Scalar::all(-1), Scalar::all(-1), - reinterpret_cast&> (outlier_mask)); + *(const vector*)(void*)(&outlier_mask)); imshow("matches - popcount - outliers removed", outimg); Mat warped; diff --git a/samples/cpp/delaunay2.cpp b/samples/cpp/delaunay2.cpp index 87bc5ebd96..e5f3c2f462 100644 --- a/samples/cpp/delaunay2.cpp +++ b/samples/cpp/delaunay2.cpp @@ -55,8 +55,6 @@ static void locate_point( Mat& img, Subdiv2D& subdiv, Point2f fp, Scalar active_ { int e0=0, vertex=0; - CvSubdiv2DEdge e00; - subdiv.locate(fp, e0, vertex); if( e0 > 0 ) diff --git a/samples/cpp/hybridtrackingsample.cpp b/samples/cpp/hybridtrackingsample.cpp index 3dfce990c6..24765ff42e 100644 --- a/samples/cpp/hybridtrackingsample.cpp +++ b/samples/cpp/hybridtrackingsample.cpp @@ -73,10 +73,9 @@ int main(int argc, char** argv) return 1; } - FILE* f; + FILE* f = 0; VideoCapture cap; char test_file[20] = ""; - char dir[20] = ""; if (strcmp(argv[1], "live") != 0) {