Fixed some build warnings; slightly improved python search
authorAndrey Kamaev <no@email>
Fri, 2 Mar 2012 08:34:54 +0000 (08:34 +0000)
committerAndrey Kamaev <no@email>
Fri, 2 Mar 2012 08:34:54 +0000 (08:34 +0000)
CMakeLists.txt
cmake/OpenCVDetectPython.cmake
modules/imgproc/test/test_thresh.cpp
samples/cpp/brief_match_test.cpp
samples/cpp/delaunay2.cpp
samples/cpp/hybridtrackingsample.cpp

index 8626340..d02a111 100644 (file)
@@ -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()
index ccf5e7f..310fdb4 100644 (file)
@@ -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)
index 7bac700..0b8d381 100644 (file)
@@ -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<uchar>(ithresh);
-        imaxval = saturate_cast<uchar>(imaxval);
+        imaxval = saturate_cast<uchar>(maxval);
     }
     else if( depth == CV_16S )
     {
         ithresh2 = saturate_cast<short>(ithresh);
-        imaxval = saturate_cast<short>(imaxval);
+        imaxval = saturate_cast<short>(maxval);
+    }
+    else
+    {
+        ithresh2 = cvRound(ithresh);
+        imaxval = cvRound(maxval);
     }
 
     assert( depth == CV_8U || depth == CV_16S || depth == CV_32F );
index 6dec5ed..8a6574a 100644 (file)
@@ -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<const vector<char>&> (outlier_mask));
+              *(const vector<char>*)(void*)(&outlier_mask));
   imshow("matches - popcount - outliers removed", outimg);
 
   Mat warped;
index 87bc5eb..e5f3c2f 100644 (file)
@@ -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 )
index 3dfce99..24765ff 100644 (file)
@@ -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)
        {