Merged the trunk r8459:8466 (inclusive)
This commit is contained in:
parent
949c4edf41
commit
052d2dc23a
271
CMakeLists.txt
271
CMakeLists.txt
@ -50,6 +50,7 @@ else()
|
|||||||
cmake_minimum_required(VERSION 2.6.3)
|
cmake_minimum_required(VERSION 2.6.3)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# must go before the project command
|
||||||
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
|
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
|
||||||
if(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8")
|
if(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8")
|
||||||
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
|
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
|
||||||
@ -164,12 +165,10 @@ OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID
|
|||||||
OCV_OPTION(INSTALL_TO_MANGLED_PATHS "Enables mangled install paths, that help with side by side installs." OFF IF (UNIX AND NOT ANDROID AND NOT IOS AND BUILD_SHARED_LIBS) )
|
OCV_OPTION(INSTALL_TO_MANGLED_PATHS "Enables mangled install paths, that help with side by side installs." OFF IF (UNIX AND NOT ANDROID AND NOT IOS AND BUILD_SHARED_LIBS) )
|
||||||
|
|
||||||
|
|
||||||
if(CMAKE_GENERATOR MATCHES Xcode)
|
if(MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode)
|
||||||
set(ENABLE_SOLUTION_FOLDERS0 ON)
|
set(ENABLE_SOLUTION_FOLDERS0 ON)
|
||||||
elseif(MSVC_IDE)
|
|
||||||
set(ENABLE_SOLUTION_FOLDERS0 ON)
|
|
||||||
else()
|
else()
|
||||||
set(ENABLE_SOLUTION_FOLDERS0 OFF)
|
set(ENABLE_SOLUTION_FOLDERS0 OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# OpenCV build options
|
# OpenCV build options
|
||||||
@ -333,270 +332,18 @@ include(cmake/OpenCVPCHSupport.cmake REQUIRED)
|
|||||||
include(cmake/OpenCVModule.cmake REQUIRED)
|
include(cmake/OpenCVModule.cmake REQUIRED)
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Detect 3rd-party image IO libraries
|
# Detect 3rd-party libraries
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
include(cmake/OpenCVIOLibs.cmake REQUIRED)
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
include(cmake/OpenCVFindLibsGrfmt.cmake REQUIRED)
|
||||||
# Detect 3rd-party GUI libraries
|
include(cmake/OpenCVFindLibsGUI.cmake REQUIRED)
|
||||||
# ----------------------------------------------------------------------------
|
include(cmake/OpenCVFindLibsVideo.cmake REQUIRED)
|
||||||
# --- QT4 ---
|
include(cmake/OpenCVFindLibsPerf.cmake REQUIRED)
|
||||||
ocv_clear_vars(HAVE_QT)
|
|
||||||
if(WITH_QT)
|
|
||||||
find_package(Qt4)
|
|
||||||
if(QT4_FOUND)
|
|
||||||
set(HAVE_QT TRUE)
|
|
||||||
add_definitions(-DHAVE_QT) #We need to define te macro this way, using cvconfig.h.cmake does not work
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# --- GTK ---
|
|
||||||
ocv_clear_vars(HAVE_GTK HAVE_GTHREAD HAVE_GTKGLEXT)
|
|
||||||
if(WITH_GTK AND NOT HAVE_QT)
|
|
||||||
CHECK_MODULE(gtk+-2.0 HAVE_GTK)
|
|
||||||
CHECK_MODULE(gthread-2.0 HAVE_GTHREAD)
|
|
||||||
if(WITH_OPENGL)
|
|
||||||
CHECK_MODULE(gtkglext-1.0 HAVE_GTKGLEXT)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# --- OpenGl ---
|
|
||||||
ocv_clear_vars(HAVE_OPENGL HAVE_QT_OPENGL)
|
|
||||||
if(WITH_OPENGL)
|
|
||||||
if(WIN32 OR QT_QTOPENGL_FOUND OR HAVE_GTKGLEXT)
|
|
||||||
find_package (OpenGL QUIET)
|
|
||||||
if(OPENGL_FOUND)
|
|
||||||
set(HAVE_OPENGL TRUE)
|
|
||||||
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${OPENGL_LIBRARIES})
|
|
||||||
if(QT_QTOPENGL_FOUND)
|
|
||||||
set(HAVE_QT_OPENGL TRUE)
|
|
||||||
add_definitions(-DHAVE_QT_OPENGL)
|
|
||||||
else()
|
|
||||||
ocv_include_directories(${OPENGL_INCLUDE_DIR})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif(WITH_OPENGL)
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Detect 3rd-party video IO libraries
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# --- GStreamer ---
|
|
||||||
ocv_clear_vars(HAVE_GSTREAMER)
|
|
||||||
if(WITH_GSTREAMER)
|
|
||||||
CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)
|
|
||||||
if(HAVE_GSTREAMER)
|
|
||||||
CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER)
|
|
||||||
endif()
|
|
||||||
if(HAVE_GSTREAMER)
|
|
||||||
CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER)
|
|
||||||
endif()
|
|
||||||
endif(WITH_GSTREAMER)
|
|
||||||
|
|
||||||
# --- unicap ---
|
|
||||||
ocv_clear_vars(HAVE_UNICAP)
|
|
||||||
if(WITH_UNICAP)
|
|
||||||
CHECK_MODULE(libunicap HAVE_UNICAP_)
|
|
||||||
CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
|
|
||||||
if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
|
|
||||||
set(HAVE_UNICAP TRUE)
|
|
||||||
endif()
|
|
||||||
endif(WITH_UNICAP)
|
|
||||||
|
|
||||||
# --- PvApi ---
|
|
||||||
ocv_clear_vars(HAVE_PVAPI)
|
|
||||||
if(WITH_PVAPI)
|
|
||||||
find_path(PVAPI_INCLUDE_PATH "PvApi.h"
|
|
||||||
PATHS /usr/local /opt /usr ENV ProgramFiles ENV ProgramW6432
|
|
||||||
PATH_SUFFIXES include "Allied Vision Technologies/GigESDK/inc-pc" "AVT GigE SDK/inc-pc" "GigESDK/inc-pc"
|
|
||||||
DOC "The path to PvAPI header")
|
|
||||||
|
|
||||||
if(PVAPI_INCLUDE_PATH)
|
|
||||||
if(X86 AND NOT WIN32)
|
|
||||||
set(PVAPI_SDK_SUBDIR x86)
|
|
||||||
elseif(X86_64)
|
|
||||||
set(PVAPI_SDK_SUBDIR x64)
|
|
||||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES arm)
|
|
||||||
set(PVAPI_SDK_SUBDIR arm)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
get_filename_component(_PVAPI_LIBRARY "${PVAPI_INCLUDE_PATH}/../lib-pc" ABSOLUTE)
|
|
||||||
if(PVAPI_SDK_SUBDIR)
|
|
||||||
set(_PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${PVAPI_SDK_SUBDIR}")
|
|
||||||
endif()
|
|
||||||
if(NOT WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
|
|
||||||
set(_PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${CMAKE_OPENCV_GCC_VERSION_MAJOR}.${CMAKE_OPENCV_GCC_VERSION_MINOR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${CMAKE_STATIC_LIBRARY_PREFIX}PvAPI${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE PATH "The PvAPI library")
|
|
||||||
if(EXISTS "${PVAPI_LIBRARY}")
|
|
||||||
set(HAVE_PVAPI TRUE)
|
|
||||||
endif()
|
|
||||||
endif(PVAPI_INCLUDE_PATH)
|
|
||||||
endif(WITH_PVAPI)
|
|
||||||
|
|
||||||
# --- Dc1394 ---
|
|
||||||
ocv_clear_vars(HAVE_DC1394 HAVE_DC1394_2)
|
|
||||||
if(WITH_1394)
|
|
||||||
CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
|
|
||||||
if(NOT HAVE_DC1394_2)
|
|
||||||
CHECK_MODULE(libdc1394 HAVE_DC1394)
|
|
||||||
endif()
|
|
||||||
endif(WITH_1394)
|
|
||||||
|
|
||||||
# --- xine ---
|
|
||||||
ocv_clear_vars(HAVE_XINE)
|
|
||||||
if(WITH_XINE)
|
|
||||||
CHECK_MODULE(libxine HAVE_XINE)
|
|
||||||
endif(WITH_XINE)
|
|
||||||
|
|
||||||
# --- V4L ---
|
|
||||||
ocv_clear_vars(HAVE_LIBV4L HAVE_CAMV4L HAVE_CAMV4L2)
|
|
||||||
if(WITH_V4L)
|
|
||||||
CHECK_MODULE(libv4l1 HAVE_LIBV4L)
|
|
||||||
CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
|
|
||||||
CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
|
|
||||||
endif(WITH_V4L)
|
|
||||||
|
|
||||||
# --- OpenNI ---
|
|
||||||
ocv_clear_vars(HAVE_OPENNI HAVE_OPENNI_PRIME_SENSOR_MODULE)
|
|
||||||
if(WITH_OPENNI)
|
|
||||||
include(cmake/OpenCVFindOpenNI.cmake)
|
|
||||||
endif(WITH_OPENNI)
|
|
||||||
|
|
||||||
# --- XIMEA ---
|
|
||||||
ocv_clear_vars(HAVE_XIMEA)
|
|
||||||
if(WITH_XIMEA)
|
|
||||||
include(cmake/OpenCVFindXimea.cmake)
|
|
||||||
if(XIMEA_FOUND)
|
|
||||||
set(HAVE_XIMEA TRUE)
|
|
||||||
endif()
|
|
||||||
endif(WITH_XIMEA)
|
|
||||||
|
|
||||||
# --- FFMPEG ---
|
|
||||||
ocv_clear_vars(HAVE_FFMPEG HAVE_FFMPEG_CODEC HAVE_FFMPEG_FORMAT HAVE_FFMPEG_UTIL HAVE_FFMPEG_SWSCALE HAVE_GENTOO_FFMPEG HAVE_FFMPEG_FFMPEG)
|
|
||||||
if(WITH_FFMPEG)
|
|
||||||
if(WIN32)
|
|
||||||
include(3rdparty/ffmpeg/ffmpeg_version.cmake REQUIRED)
|
|
||||||
elseif(UNIX)
|
|
||||||
CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
|
|
||||||
CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
|
|
||||||
CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
|
|
||||||
CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
|
|
||||||
|
|
||||||
CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
|
|
||||||
CHECK_INCLUDE_FILE(ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG)
|
|
||||||
if(NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG)
|
|
||||||
if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE)
|
|
||||||
set(HAVE_GENTOO_FFMPEG TRUE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL AND HAVE_FFMPEG_SWSCALE)
|
|
||||||
set(HAVE_FFMPEG TRUE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(HAVE_FFMPEG)
|
|
||||||
# Find the bzip2 library because it is required on some systems
|
|
||||||
FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2)
|
|
||||||
if(NOT BZIP2_LIBRARIES)
|
|
||||||
# Do an other trial
|
|
||||||
FIND_FILE(BZIP2_LIBRARIES NAMES libbz2.so.1 PATHS /lib)
|
|
||||||
endif()
|
|
||||||
endif(HAVE_FFMPEG)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
find_path(FFMPEG_INCLUDE_DIR "libavformat/avformat.h"
|
|
||||||
PATHS /usr/local /usr /opt
|
|
||||||
PATH_SUFFIXES include
|
|
||||||
DOC "The path to FFMPEG headers")
|
|
||||||
if(FFMPEG_INCLUDE_DIR)
|
|
||||||
set(HAVE_GENTOO_FFMPEG TRUE)
|
|
||||||
set(FFMPEG_LIB_DIR "${FFMPEG_INCLUDE_DIR}/../lib" CACHE PATH "Full path of FFMPEG library directory")
|
|
||||||
if(EXISTS "${FFMPEG_LIB_DIR}/libavcodec.a")
|
|
||||||
set(HAVE_FFMPEG_CODEC 1)
|
|
||||||
set(ALIASOF_libavcodec_VERSION "Unknown")
|
|
||||||
if(EXISTS "${FFMPEG_LIB_DIR}/libavformat.a")
|
|
||||||
set(HAVE_FFMPEG_FORMAT 1)
|
|
||||||
set(ALIASOF_libavformat_VERSION "Unknown")
|
|
||||||
if(EXISTS "${FFMPEG_LIB_DIR}/libavutil.a")
|
|
||||||
set(HAVE_FFMPEG_UTIL 1)
|
|
||||||
set(ALIASOF_libavutil_VERSION "Unknown")
|
|
||||||
if(EXISTS "${FFMPEG_LIB_DIR}/libswscale.a")
|
|
||||||
set(HAVE_FFMPEG_SWSCALE 1)
|
|
||||||
set(ALIASOF_libswscale_VERSION "Unknown")
|
|
||||||
set(HAVE_FFMPEG 1)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif(FFMPEG_INCLUDE_DIR)
|
|
||||||
if(HAVE_FFMPEG)
|
|
||||||
set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} "${FFMPEG_LIB_DIR}/libavcodec.a"
|
|
||||||
"${FFMPEG_LIB_DIR}/libavformat.a" "${FFMPEG_LIB_DIR}/libavutil.a"
|
|
||||||
"${FFMPEG_LIB_DIR}/libswscale.a")
|
|
||||||
ocv_include_directories(${FFMPEG_INCLUDE_DIR})
|
|
||||||
endif()
|
|
||||||
endif(APPLE)
|
|
||||||
endif(WITH_FFMPEG)
|
|
||||||
|
|
||||||
# --- VideoInput ---
|
|
||||||
if(WITH_VIDEOINPUT)
|
|
||||||
# always have VideoInput on Windows
|
|
||||||
set(HAVE_VIDEOINPUT 1)
|
|
||||||
endif(WITH_VIDEOINPUT)
|
|
||||||
|
|
||||||
# --- Extra HighGUI libs on Windows ---
|
|
||||||
if(WIN32)
|
|
||||||
list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32)
|
|
||||||
if(MSVC)
|
|
||||||
list(APPEND HIGHGUI_LIBRARIES vfw32)
|
|
||||||
elseif(MINGW64)
|
|
||||||
list(APPEND HIGHGUI_LIBRARIES msvfw32 avifil32 avicap32 winmm)
|
|
||||||
elseif(MINGW)
|
|
||||||
list(APPEND HIGHGUI_LIBRARIES vfw32 winmm)
|
|
||||||
endif()
|
|
||||||
endif(WIN32)
|
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Detect other 3rd-party libraries/tools
|
# Detect other 3rd-party libraries/tools
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# --- TBB ---
|
|
||||||
if(WITH_TBB)
|
|
||||||
include(cmake/OpenCVDetectTBB.cmake REQUIRED)
|
|
||||||
endif(WITH_TBB)
|
|
||||||
|
|
||||||
# --- IPP ---
|
|
||||||
ocv_clear_vars(IPP_FOUND)
|
|
||||||
if(WITH_IPP)
|
|
||||||
include(cmake/OpenCVFindIPP.cmake)
|
|
||||||
if(IPP_FOUND)
|
|
||||||
add_definitions(-DHAVE_IPP)
|
|
||||||
ocv_include_directories(${IPP_INCLUDE_DIRS})
|
|
||||||
link_directories(${IPP_LIBRARY_DIRS})
|
|
||||||
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${IPP_LIBRARIES})
|
|
||||||
endif()
|
|
||||||
endif(WITH_IPP)
|
|
||||||
|
|
||||||
# --- CUDA ---
|
|
||||||
if(WITH_CUDA)
|
|
||||||
include(cmake/OpenCVDetectCUDA.cmake REQUIRED)
|
|
||||||
endif(WITH_CUDA)
|
|
||||||
|
|
||||||
# --- Eigen ---
|
|
||||||
if(WITH_EIGEN)
|
|
||||||
find_path(EIGEN_INCLUDE_PATH "Eigen/Core"
|
|
||||||
PATHS /usr/local /opt /usr ENV ProgramFiles ENV ProgramW6432
|
|
||||||
PATH_SUFFIXES include/eigen3 include/eigen2 Eigen/include/eigen3 Eigen/include/eigen2
|
|
||||||
DOC "The path to Eigen3/Eigen2 headers")
|
|
||||||
|
|
||||||
if(EIGEN_INCLUDE_PATH)
|
|
||||||
ocv_include_directories(${EIGEN_INCLUDE_PATH})
|
|
||||||
ocv_parse_header("${EIGEN_INCLUDE_PATH}/Eigen/src/Core/util/Macros.h" EIGEN_VERSION_LINES EIGEN_WORLD_VERSION EIGEN_MAJOR_VERSION EIGEN_MINOR_VERSION)
|
|
||||||
set(HAVE_EIGEN 1)
|
|
||||||
endif()
|
|
||||||
endif(WITH_EIGEN)
|
|
||||||
|
|
||||||
# --- LATEX for pdf documentation ---
|
# --- LATEX for pdf documentation ---
|
||||||
if(BUILD_DOCS)
|
if(BUILD_DOCS)
|
||||||
|
41
cmake/OpenCVFindLibsGUI.cmake
Normal file
41
cmake/OpenCVFindLibsGUI.cmake
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Detect 3rd-party GUI libraries
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# --- QT4 ---
|
||||||
|
ocv_clear_vars(HAVE_QT)
|
||||||
|
if(WITH_QT)
|
||||||
|
find_package(Qt4)
|
||||||
|
if(QT4_FOUND)
|
||||||
|
set(HAVE_QT TRUE)
|
||||||
|
add_definitions(-DHAVE_QT) # We need to define the macro this way, using cvconfig.h does not work
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# --- GTK ---
|
||||||
|
ocv_clear_vars(HAVE_GTK HAVE_GTHREAD HAVE_GTKGLEXT)
|
||||||
|
if(WITH_GTK AND NOT HAVE_QT)
|
||||||
|
CHECK_MODULE(gtk+-2.0 HAVE_GTK)
|
||||||
|
CHECK_MODULE(gthread-2.0 HAVE_GTHREAD)
|
||||||
|
if(WITH_OPENGL)
|
||||||
|
CHECK_MODULE(gtkglext-1.0 HAVE_GTKGLEXT)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# --- OpenGl ---
|
||||||
|
ocv_clear_vars(HAVE_OPENGL HAVE_QT_OPENGL)
|
||||||
|
if(WITH_OPENGL)
|
||||||
|
if(WIN32 OR QT_QTOPENGL_FOUND OR HAVE_GTKGLEXT)
|
||||||
|
find_package (OpenGL QUIET)
|
||||||
|
if(OPENGL_FOUND)
|
||||||
|
set(HAVE_OPENGL TRUE)
|
||||||
|
list(APPEND OPENCV_LINKER_LIBS ${OPENGL_LIBRARIES})
|
||||||
|
if(QT_QTOPENGL_FOUND)
|
||||||
|
set(HAVE_QT_OPENGL TRUE)
|
||||||
|
add_definitions(-DHAVE_QT_OPENGL)
|
||||||
|
else()
|
||||||
|
ocv_include_directories(${OPENGL_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif(WITH_OPENGL)
|
@ -1,12 +1,10 @@
|
|||||||
macro(unset_all)
|
# ----------------------------------------------------------------------------
|
||||||
foreach(var ${ARGN})
|
# Detect 3rd-party image IO libraries
|
||||||
unset(${var} CACHE)
|
# ----------------------------------------------------------------------------
|
||||||
endforeach()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
################### zlib - required
|
# --- zlib (required) ---
|
||||||
if(BUILD_ZLIB)
|
if(BUILD_ZLIB)
|
||||||
unset_all(ZLIB_FOUND)
|
ocv_clear_vars(ZLIB_FOUND)
|
||||||
else()
|
else()
|
||||||
include(FindZLIB)
|
include(FindZLIB)
|
||||||
if(ZLIB_FOUND)
|
if(ZLIB_FOUND)
|
||||||
@ -25,7 +23,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT ZLIB_FOUND)
|
if(NOT ZLIB_FOUND)
|
||||||
unset_all(ZLIB_LIBRARY ZLIB_LIBRARIES ZLIB_INCLUDE_DIR)
|
ocv_clear_vars(ZLIB_LIBRARY ZLIB_LIBRARIES ZLIB_INCLUDE_DIR)
|
||||||
|
|
||||||
set(ZLIB_LIBRARY zlib)
|
set(ZLIB_LIBRARY zlib)
|
||||||
set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
|
set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
|
||||||
@ -33,10 +31,10 @@ if(NOT ZLIB_FOUND)
|
|||||||
set(ZLIB_INCLUDE_DIR "${${ZLIB_LIBRARY}_SOURCE_DIR}" "${${ZLIB_LIBRARY}_BINARY_DIR}")
|
set(ZLIB_INCLUDE_DIR "${${ZLIB_LIBRARY}_SOURCE_DIR}" "${${ZLIB_LIBRARY}_BINARY_DIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
################### libtiff - optional (should be searched after zlib)
|
# --- libtiff (optional, should be searched after zlib) ---
|
||||||
if(WITH_TIFF)
|
if(WITH_TIFF)
|
||||||
if(BUILD_TIFF)
|
if(BUILD_TIFF)
|
||||||
unset_all(TIFF_FOUND)
|
ocv_clear_vars(TIFF_FOUND)
|
||||||
else()
|
else()
|
||||||
include(FindTIFF)
|
include(FindTIFF)
|
||||||
if(TIFF_FOUND)
|
if(TIFF_FOUND)
|
||||||
@ -46,7 +44,7 @@ if(WITH_TIFF)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_TIFF AND NOT TIFF_FOUND)
|
if(WITH_TIFF AND NOT TIFF_FOUND)
|
||||||
unset_all(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR)
|
ocv_clear_vars(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR)
|
||||||
|
|
||||||
set(TIFF_LIBRARY libtiff)
|
set(TIFF_LIBRARY libtiff)
|
||||||
set(TIFF_LIBRARIES ${TIFF_LIBRARY})
|
set(TIFF_LIBRARIES ${TIFF_LIBRARY})
|
||||||
@ -63,17 +61,17 @@ if(TIFF_BIGTIFF_VERSION AND NOT TIFF_VERSION_BIG)
|
|||||||
set(TIFF_VERSION_BIG ${TIFF_BIGTIFF_VERSION})
|
set(TIFF_VERSION_BIG ${TIFF_BIGTIFF_VERSION})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
################### libjpeg - optional
|
# --- libjpeg (optional) ---
|
||||||
if(WITH_JPEG)
|
if(WITH_JPEG)
|
||||||
if(BUILD_JPEG)
|
if(BUILD_JPEG)
|
||||||
unset_all(JPEG_FOUND)
|
ocv_clear_vars(JPEG_FOUND)
|
||||||
else()
|
else()
|
||||||
include(FindJPEG)
|
include(FindJPEG)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_JPEG AND NOT JPEG_FOUND)
|
if(WITH_JPEG AND NOT JPEG_FOUND)
|
||||||
unset_all(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR)
|
ocv_clear_vars(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR)
|
||||||
|
|
||||||
set(JPEG_LIBRARY libjpeg)
|
set(JPEG_LIBRARY libjpeg)
|
||||||
set(JPEG_LIBRARIES ${JPEG_LIBRARY})
|
set(JPEG_LIBRARIES ${JPEG_LIBRARY})
|
||||||
@ -84,17 +82,17 @@ endif()
|
|||||||
ocv_parse_header("${JPEG_INCLUDE_DIR}/jpeglib.h" JPEG_VERSION_LINES JPEG_LIB_VERSION)
|
ocv_parse_header("${JPEG_INCLUDE_DIR}/jpeglib.h" JPEG_VERSION_LINES JPEG_LIB_VERSION)
|
||||||
|
|
||||||
|
|
||||||
################### libjasper - optional (should be searched after libjpeg)
|
# --- libjasper (optional, should be searched after libjpeg) ---
|
||||||
if(WITH_JASPER)
|
if(WITH_JASPER)
|
||||||
if(BUILD_JASPER)
|
if(BUILD_JASPER)
|
||||||
unset_all(JASPER_FOUND)
|
ocv_clear_vars(JASPER_FOUND)
|
||||||
else()
|
else()
|
||||||
include(FindJasper)
|
include(FindJasper)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_JASPER AND NOT JASPER_FOUND)
|
if(WITH_JASPER AND NOT JASPER_FOUND)
|
||||||
unset_all(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR)
|
ocv_clear_vars(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR)
|
||||||
|
|
||||||
set(JASPER_LIBRARY libjasper)
|
set(JASPER_LIBRARY libjasper)
|
||||||
set(JASPER_LIBRARIES ${JASPER_LIBRARY})
|
set(JASPER_LIBRARIES ${JASPER_LIBRARY})
|
||||||
@ -106,10 +104,10 @@ if(NOT JASPER_VERSION_STRING)
|
|||||||
ocv_parse_header2(JASPER "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" JAS_VERSION "")
|
ocv_parse_header2(JASPER "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" JAS_VERSION "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
################### libpng - optional (should be searched after zlib)
|
# --- libpng (optional, should be searched after zlib) ---
|
||||||
if(WITH_PNG)
|
if(WITH_PNG)
|
||||||
if(BUILD_PNG)
|
if(BUILD_PNG)
|
||||||
unset_all(PNG_FOUND)
|
ocv_clear_vars(PNG_FOUND)
|
||||||
else()
|
else()
|
||||||
include(FindPNG)
|
include(FindPNG)
|
||||||
if(PNG_FOUND)
|
if(PNG_FOUND)
|
||||||
@ -125,7 +123,7 @@ if(WITH_PNG)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_PNG AND NOT PNG_FOUND)
|
if(WITH_PNG AND NOT PNG_FOUND)
|
||||||
unset_all(PNG_LIBRARY PNG_LIBRARIES PNG_INCLUDE_DIR PNG_PNG_INCLUDE_DIR HAVE_PNG_H HAVE_LIBPNG_PNG_H PNG_DEFINITIONS)
|
ocv_clear_vars(PNG_LIBRARY PNG_LIBRARIES PNG_INCLUDE_DIR PNG_PNG_INCLUDE_DIR HAVE_PNG_H HAVE_LIBPNG_PNG_H PNG_DEFINITIONS)
|
||||||
|
|
||||||
set(PNG_LIBRARY libpng)
|
set(PNG_LIBRARY libpng)
|
||||||
set(PNG_LIBRARIES ${PNG_LIBRARY})
|
set(PNG_LIBRARIES ${PNG_LIBRARY})
|
||||||
@ -137,7 +135,7 @@ endif()
|
|||||||
|
|
||||||
set(PNG_VERSION "${PNG_LIBPNG_VER_MAJOR}.${PNG_LIBPNG_VER_MINOR}.${PNG_LIBPNG_VER_RELEASE}")
|
set(PNG_VERSION "${PNG_LIBPNG_VER_MAJOR}.${PNG_LIBPNG_VER_MINOR}.${PNG_LIBPNG_VER_RELEASE}")
|
||||||
|
|
||||||
################### OpenEXR - optional
|
# --- OpenEXR (optional) ---
|
||||||
if(WITH_OPENEXR)
|
if(WITH_OPENEXR)
|
||||||
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
|
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
|
||||||
endif()
|
endif()
|
39
cmake/OpenCVFindLibsPerf.cmake
Normal file
39
cmake/OpenCVFindLibsPerf.cmake
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Detect other 3rd-party performance and math libraries
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# --- TBB ---
|
||||||
|
if(WITH_TBB)
|
||||||
|
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectTBB.cmake" REQUIRED)
|
||||||
|
endif(WITH_TBB)
|
||||||
|
|
||||||
|
# --- IPP ---
|
||||||
|
ocv_clear_vars(IPP_FOUND)
|
||||||
|
if(WITH_IPP)
|
||||||
|
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindIPP.cmake")
|
||||||
|
if(IPP_FOUND)
|
||||||
|
add_definitions(-DHAVE_IPP)
|
||||||
|
ocv_include_directories(${IPP_INCLUDE_DIRS})
|
||||||
|
link_directories(${IPP_LIBRARY_DIRS})
|
||||||
|
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${IPP_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
endif(WITH_IPP)
|
||||||
|
|
||||||
|
# --- CUDA ---
|
||||||
|
if(WITH_CUDA)
|
||||||
|
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectCUDA.cmake" REQUIRED)
|
||||||
|
endif(WITH_CUDA)
|
||||||
|
|
||||||
|
# --- Eigen ---
|
||||||
|
if(WITH_EIGEN)
|
||||||
|
find_path(EIGEN_INCLUDE_PATH "Eigen/Core"
|
||||||
|
PATHS /usr/local /opt /usr ENV ProgramFiles ENV ProgramW6432
|
||||||
|
PATH_SUFFIXES include/eigen3 include/eigen2 Eigen/include/eigen3 Eigen/include/eigen2
|
||||||
|
DOC "The path to Eigen3/Eigen2 headers")
|
||||||
|
|
||||||
|
if(EIGEN_INCLUDE_PATH)
|
||||||
|
ocv_include_directories(${EIGEN_INCLUDE_PATH})
|
||||||
|
ocv_parse_header("${EIGEN_INCLUDE_PATH}/Eigen/src/Core/util/Macros.h" EIGEN_VERSION_LINES EIGEN_WORLD_VERSION EIGEN_MAJOR_VERSION EIGEN_MINOR_VERSION)
|
||||||
|
set(HAVE_EIGEN 1)
|
||||||
|
endif()
|
||||||
|
endif(WITH_EIGEN)
|
180
cmake/OpenCVFindLibsVideo.cmake
Normal file
180
cmake/OpenCVFindLibsVideo.cmake
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Detect 3rd-party video IO libraries
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# --- GStreamer ---
|
||||||
|
ocv_clear_vars(HAVE_GSTREAMER)
|
||||||
|
if(WITH_GSTREAMER)
|
||||||
|
CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)
|
||||||
|
if(HAVE_GSTREAMER)
|
||||||
|
CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER)
|
||||||
|
endif()
|
||||||
|
if(HAVE_GSTREAMER)
|
||||||
|
CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER)
|
||||||
|
endif()
|
||||||
|
endif(WITH_GSTREAMER)
|
||||||
|
|
||||||
|
# --- unicap ---
|
||||||
|
ocv_clear_vars(HAVE_UNICAP)
|
||||||
|
if(WITH_UNICAP)
|
||||||
|
CHECK_MODULE(libunicap HAVE_UNICAP_)
|
||||||
|
CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
|
||||||
|
if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
|
||||||
|
set(HAVE_UNICAP TRUE)
|
||||||
|
endif()
|
||||||
|
endif(WITH_UNICAP)
|
||||||
|
|
||||||
|
# --- PvApi ---
|
||||||
|
ocv_clear_vars(HAVE_PVAPI)
|
||||||
|
if(WITH_PVAPI)
|
||||||
|
find_path(PVAPI_INCLUDE_PATH "PvApi.h"
|
||||||
|
PATHS /usr/local /opt /usr ENV ProgramFiles ENV ProgramW6432
|
||||||
|
PATH_SUFFIXES include "Allied Vision Technologies/GigESDK/inc-pc" "AVT GigE SDK/inc-pc" "GigESDK/inc-pc"
|
||||||
|
DOC "The path to PvAPI header")
|
||||||
|
|
||||||
|
if(PVAPI_INCLUDE_PATH)
|
||||||
|
if(X86 AND NOT WIN32)
|
||||||
|
set(PVAPI_SDK_SUBDIR x86)
|
||||||
|
elseif(X86_64)
|
||||||
|
set(PVAPI_SDK_SUBDIR x64)
|
||||||
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES arm)
|
||||||
|
set(PVAPI_SDK_SUBDIR arm)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
get_filename_component(_PVAPI_LIBRARY "${PVAPI_INCLUDE_PATH}/../lib-pc" ABSOLUTE)
|
||||||
|
if(PVAPI_SDK_SUBDIR)
|
||||||
|
set(_PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${PVAPI_SDK_SUBDIR}")
|
||||||
|
endif()
|
||||||
|
if(NOT WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
set(_PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${CMAKE_OPENCV_GCC_VERSION_MAJOR}.${CMAKE_OPENCV_GCC_VERSION_MINOR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${CMAKE_STATIC_LIBRARY_PREFIX}PvAPI${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE PATH "The PvAPI library")
|
||||||
|
if(EXISTS "${PVAPI_LIBRARY}")
|
||||||
|
set(HAVE_PVAPI TRUE)
|
||||||
|
endif()
|
||||||
|
endif(PVAPI_INCLUDE_PATH)
|
||||||
|
endif(WITH_PVAPI)
|
||||||
|
|
||||||
|
# --- Dc1394 ---
|
||||||
|
ocv_clear_vars(HAVE_DC1394 HAVE_DC1394_2)
|
||||||
|
if(WITH_1394)
|
||||||
|
CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
|
||||||
|
if(NOT HAVE_DC1394_2)
|
||||||
|
CHECK_MODULE(libdc1394 HAVE_DC1394)
|
||||||
|
endif()
|
||||||
|
endif(WITH_1394)
|
||||||
|
|
||||||
|
# --- xine ---
|
||||||
|
ocv_clear_vars(HAVE_XINE)
|
||||||
|
if(WITH_XINE)
|
||||||
|
CHECK_MODULE(libxine HAVE_XINE)
|
||||||
|
endif(WITH_XINE)
|
||||||
|
|
||||||
|
# --- V4L ---
|
||||||
|
ocv_clear_vars(HAVE_LIBV4L HAVE_CAMV4L HAVE_CAMV4L2)
|
||||||
|
if(WITH_V4L)
|
||||||
|
CHECK_MODULE(libv4l1 HAVE_LIBV4L)
|
||||||
|
CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
|
||||||
|
CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
|
||||||
|
endif(WITH_V4L)
|
||||||
|
|
||||||
|
# --- OpenNI ---
|
||||||
|
ocv_clear_vars(HAVE_OPENNI HAVE_OPENNI_PRIME_SENSOR_MODULE)
|
||||||
|
if(WITH_OPENNI)
|
||||||
|
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenNI.cmake")
|
||||||
|
endif(WITH_OPENNI)
|
||||||
|
|
||||||
|
# --- XIMEA ---
|
||||||
|
ocv_clear_vars(HAVE_XIMEA)
|
||||||
|
if(WITH_XIMEA)
|
||||||
|
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindXimea.cmake")
|
||||||
|
if(XIMEA_FOUND)
|
||||||
|
set(HAVE_XIMEA TRUE)
|
||||||
|
endif()
|
||||||
|
endif(WITH_XIMEA)
|
||||||
|
|
||||||
|
# --- FFMPEG ---
|
||||||
|
ocv_clear_vars(HAVE_FFMPEG HAVE_FFMPEG_CODEC HAVE_FFMPEG_FORMAT HAVE_FFMPEG_UTIL HAVE_FFMPEG_SWSCALE HAVE_GENTOO_FFMPEG HAVE_FFMPEG_FFMPEG)
|
||||||
|
if(WITH_FFMPEG)
|
||||||
|
if(WIN32)
|
||||||
|
include("${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/ffmpeg_version.cmake" REQUIRED)
|
||||||
|
elseif(UNIX)
|
||||||
|
CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
|
||||||
|
CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
|
||||||
|
CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
|
||||||
|
CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
|
||||||
|
|
||||||
|
CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
|
||||||
|
CHECK_INCLUDE_FILE(ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG)
|
||||||
|
if(NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG)
|
||||||
|
if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE)
|
||||||
|
set(HAVE_GENTOO_FFMPEG TRUE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL AND HAVE_FFMPEG_SWSCALE)
|
||||||
|
set(HAVE_FFMPEG TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(HAVE_FFMPEG)
|
||||||
|
# Find the bzip2 library because it is required on some systems
|
||||||
|
FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2)
|
||||||
|
if(NOT BZIP2_LIBRARIES)
|
||||||
|
# Do an other trial
|
||||||
|
FIND_FILE(BZIP2_LIBRARIES NAMES libbz2.so.1 PATHS /lib)
|
||||||
|
endif()
|
||||||
|
endif(HAVE_FFMPEG)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
find_path(FFMPEG_INCLUDE_DIR "libavformat/avformat.h"
|
||||||
|
PATHS /usr/local /usr /opt
|
||||||
|
PATH_SUFFIXES include
|
||||||
|
DOC "The path to FFMPEG headers")
|
||||||
|
if(FFMPEG_INCLUDE_DIR)
|
||||||
|
set(HAVE_GENTOO_FFMPEG TRUE)
|
||||||
|
set(FFMPEG_LIB_DIR "${FFMPEG_INCLUDE_DIR}/../lib" CACHE PATH "Full path of FFMPEG library directory")
|
||||||
|
if(EXISTS "${FFMPEG_LIB_DIR}/libavcodec.a")
|
||||||
|
set(HAVE_FFMPEG_CODEC 1)
|
||||||
|
set(ALIASOF_libavcodec_VERSION "Unknown")
|
||||||
|
if(EXISTS "${FFMPEG_LIB_DIR}/libavformat.a")
|
||||||
|
set(HAVE_FFMPEG_FORMAT 1)
|
||||||
|
set(ALIASOF_libavformat_VERSION "Unknown")
|
||||||
|
if(EXISTS "${FFMPEG_LIB_DIR}/libavutil.a")
|
||||||
|
set(HAVE_FFMPEG_UTIL 1)
|
||||||
|
set(ALIASOF_libavutil_VERSION "Unknown")
|
||||||
|
if(EXISTS "${FFMPEG_LIB_DIR}/libswscale.a")
|
||||||
|
set(HAVE_FFMPEG_SWSCALE 1)
|
||||||
|
set(ALIASOF_libswscale_VERSION "Unknown")
|
||||||
|
set(HAVE_FFMPEG 1)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif(FFMPEG_INCLUDE_DIR)
|
||||||
|
if(HAVE_FFMPEG)
|
||||||
|
set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} "${FFMPEG_LIB_DIR}/libavcodec.a"
|
||||||
|
"${FFMPEG_LIB_DIR}/libavformat.a" "${FFMPEG_LIB_DIR}/libavutil.a"
|
||||||
|
"${FFMPEG_LIB_DIR}/libswscale.a")
|
||||||
|
ocv_include_directories(${FFMPEG_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
endif(APPLE)
|
||||||
|
endif(WITH_FFMPEG)
|
||||||
|
|
||||||
|
# --- VideoInput ---
|
||||||
|
if(WITH_VIDEOINPUT)
|
||||||
|
# always have VideoInput on Windows
|
||||||
|
set(HAVE_VIDEOINPUT 1)
|
||||||
|
endif(WITH_VIDEOINPUT)
|
||||||
|
|
||||||
|
# --- Extra HighGUI libs on Windows ---
|
||||||
|
if(WIN32)
|
||||||
|
list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32)
|
||||||
|
if(MSVC)
|
||||||
|
list(APPEND HIGHGUI_LIBRARIES vfw32)
|
||||||
|
elseif(MINGW64)
|
||||||
|
list(APPEND HIGHGUI_LIBRARIES msvfw32 avifil32 avicap32 winmm)
|
||||||
|
elseif(MINGW)
|
||||||
|
list(APPEND HIGHGUI_LIBRARIES vfw32 winmm)
|
||||||
|
endif()
|
||||||
|
endif(WIN32)
|
25
modules/core/test/test_misc.cpp
Normal file
25
modules/core/test/test_misc.cpp
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#include "test_precomp.hpp"
|
||||||
|
|
||||||
|
using namespace cv;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
TEST(Core_Drawing, _914)
|
||||||
|
{
|
||||||
|
const int rows = 256;
|
||||||
|
const int cols = 256;
|
||||||
|
|
||||||
|
Mat img(rows, cols, CV_8UC1, Scalar(255));
|
||||||
|
|
||||||
|
line(img, Point(0, 10), Point(255, 10), Scalar(0), 2, 4);
|
||||||
|
line(img, Point(-5, 20), Point(260, 20), Scalar(0), 2, 4);
|
||||||
|
line(img, Point(10, 0), Point(10, 255), Scalar(0), 2, 4);
|
||||||
|
|
||||||
|
double x0 = 0.0/pow(2.0, -2.0);
|
||||||
|
double x1 = 255.0/pow(2.0, -2.0);
|
||||||
|
double y = 30.5/pow(2.0, -2.0);
|
||||||
|
|
||||||
|
line(img, Point(int(x0), int(y)), Point(int(x1), int(y)), Scalar(0), 2, 4, 2);
|
||||||
|
|
||||||
|
int pixelsDrawn = rows*cols - countNonZero(img);
|
||||||
|
ASSERT_EQ( (3*rows + cols)*3 - 3*9, pixelsDrawn);
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
#include "opencv2/video/tracking.hpp"
|
#include "opencv2/video/tracking.hpp"
|
||||||
#include "opencv2/highgui/highgui.hpp"
|
#include "opencv2/highgui/highgui.hpp"
|
||||||
|
#include "opencv2/imgproc/imgproc_c.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
void help()
|
void help()
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "opencv2/video/tracking.hpp"
|
#include "opencv2/video/tracking.hpp"
|
||||||
#include "opencv2/imgproc/imgproc.hpp"
|
|
||||||
#include "opencv2/highgui/highgui.hpp"
|
#include "opencv2/highgui/highgui.hpp"
|
||||||
|
#include "opencv2/imgproc/imgproc_c.h"
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
@ -1,63 +1,29 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import cv2
|
import cv2
|
||||||
|
|
||||||
from Queue import Queue
|
from multiprocessing.pool import ThreadPool
|
||||||
from threading import Thread
|
|
||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
class Worker(Thread):
|
|
||||||
def __init__(self, tasks):
|
|
||||||
Thread.__init__(self)
|
|
||||||
self.tasks = tasks
|
|
||||||
self.daemon = True
|
|
||||||
self.start()
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
while True:
|
|
||||||
func, args, kargs = self.tasks.get()
|
|
||||||
try: func(*args, **kargs)
|
|
||||||
except Exception, e: print e
|
|
||||||
self.tasks.task_done()
|
|
||||||
|
|
||||||
class ThreadPool:
|
|
||||||
def __init__(self, num_threads):
|
|
||||||
self.tasks = Queue(num_threads)
|
|
||||||
for _ in range(num_threads): Worker(self.tasks)
|
|
||||||
|
|
||||||
def add_task(self, func, *args, **kargs):
|
|
||||||
self.tasks.put((func, args, kargs))
|
|
||||||
|
|
||||||
def wait_completion(self):
|
|
||||||
self.tasks.join()
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
results = deque()
|
def process_frame(frame):
|
||||||
|
# some intensive computation...
|
||||||
|
frame = cv2.medianBlur(frame, 19)
|
||||||
|
frame = cv2.medianBlur(frame, 19)
|
||||||
|
frame = cv2.medianBlur(frame, 19)
|
||||||
|
return frame
|
||||||
|
|
||||||
def process_frame(i, frame):
|
threadn = 8
|
||||||
global results
|
|
||||||
res = cv2.medianBlur(frame, 15)
|
|
||||||
results.append((i, res))
|
|
||||||
|
|
||||||
pool = ThreadPool(4)
|
|
||||||
cap = cv2.VideoCapture(0)
|
cap = cv2.VideoCapture(0)
|
||||||
frame_count = 0
|
pool = ThreadPool(processes = threadn)
|
||||||
last_frame = None
|
pending = deque()
|
||||||
last_count = -1
|
|
||||||
while True:
|
while True:
|
||||||
ret, frame = cap.read()
|
while len(pending) > 0 and pending[0].ready():
|
||||||
pool.add_task(process_frame, frame_count, frame.copy())
|
res = pending.popleft().get()
|
||||||
frame_count += 1
|
cv2.imshow('result', res)
|
||||||
while len(results) > 0:
|
if len(pending) < threadn+1:
|
||||||
i, frame = results.popleft()
|
ret, frame = cap.read()
|
||||||
if i > last_count:
|
task = pool.apply_async(process_frame, (frame.copy(),))
|
||||||
last_count, last_frame = i, frame
|
pending.append(task)
|
||||||
if last_frame is not None:
|
|
||||||
cv2.imshow('res', last_frame)
|
|
||||||
if cv2.waitKey(1) == 27:
|
if cv2.waitKey(1) == 27:
|
||||||
break
|
break
|
||||||
|
|
||||||
pool.wait_completion()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user