From 2e7656dbdfaccca8bb3245fc70ed6069f8e9f53f Mon Sep 17 00:00:00 2001 From: Evgeny Talanin Date: Fri, 12 Oct 2012 13:03:43 +0400 Subject: [PATCH] #2192 patch apply --- CMakeLists.txt | 5 +++++ cmake/OpenCVFindLibsVideo.cmake | 13 +++++++++++++ modules/highgui/CMakeLists.txt | 8 ++++++++ modules/highgui/include/opencv2/highgui/highgui_c.h | 13 ++++++++++++- modules/highgui/src/cap.cpp | 12 ++++++++++++ modules/highgui/src/precomp.hpp | 1 + modules/highgui/test/test_precomp.hpp | 1 + 7 files changed, 52 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 25bf7c80ff..04dc90c000 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,6 +129,7 @@ OCV_OPTION(WITH_OPENGL "Include OpenGL support" OFF OCV_OPTION(WITH_OPENNI "Include OpenNI support" OFF IF (NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_PNG "Include PNG support" ON IF (NOT IOS) ) OCV_OPTION(WITH_PVAPI "Include Prosilica GigE support" ON IF (NOT ANDROID AND NOT IOS) ) +OCV_OPTION(WITH_GIGEAPI "Include Smartek GigE support" ON IF (NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_QT "Build with Qt Backend support" OFF IF (NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O insted of QTKit" OFF IF APPLE ) OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS) ) @@ -693,6 +694,10 @@ if(DEFINED WITH_PVAPI) status(" PvAPI:" HAVE_PVAPI THEN YES ELSE NO) endif(DEFINED WITH_PVAPI) +if(DEFINED WITH_GIGEAPI) + status(" GigEVisionSDK:" HAVE_GIGE_API THEN YES ELSE NO) +endif(DEFINED WITH_GIGEAPI) + if(DEFINED WITH_QUICKTIME) status(" QuickTime:" WITH_QUICKTIME THEN YES ELSE NO) status(" QTKit:" WITH_QUICKTIME THEN NO ELSE YES) diff --git a/cmake/OpenCVFindLibsVideo.cmake b/cmake/OpenCVFindLibsVideo.cmake index 5eeff178f1..fdc9ea27f7 100644 --- a/cmake/OpenCVFindLibsVideo.cmake +++ b/cmake/OpenCVFindLibsVideo.cmake @@ -56,6 +56,19 @@ if(WITH_PVAPI) endif(PVAPI_INCLUDE_PATH) endif(WITH_PVAPI) +# --- GigEVisionSDK --- +ocv_clear_vars(HAVE_GIGE_API) +if(WITH_GIGEAPI) + find_path(GIGEAPI_INCLUDE_PATH "GigEVisionSDK.h" + PATHS /usr/local /var /opt /usr ENV ProgramFiles ENV ProgramW6432 + PATH_SUFFIXES include "Smartek Vision Technologies/GigEVisionSDK/gige_cpp" "GigEVisionSDK/gige_cpp" "GigEVisionSDK/gige_c" + DOC "The path to Smartek GigEVisionSDK header") + FIND_LIBRARY(GIGEAPI_LIBRARIES NAMES GigEVisionSDK) + if(GIGEAPI_LIBRARIES AND GIGEAPI_INCLUDE_PATH) + set(HAVE_GIGE_API TRUE) + endif() +endif(WITH_GIGEAPI) + # --- Dc1394 --- ocv_clear_vars(HAVE_DC1394 HAVE_DC1394_2) if(WITH_1394) diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index e653737a90..b4b2896d7a 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -171,6 +171,14 @@ if(HAVE_PVAPI) list(APPEND HIGHGUI_LIBRARIES ${PVAPI_LIBRARY}) endif() +if(HAVE_GIGE_API) + add_definitions(-DHAVE_GIGE_API) + ocv_include_directories(${GIGEAPI_INCLUDE_PATH}) + set(highgui_srcs src/cap_giganetix.cpp ${highgui_srcs}) + list(APPEND HIGHGUI_LIBRARIES ${GIGEAPI_LIBRARIES}) + list(APPEND highgui_srcs src/cap_giganetix.cpp) +endif(HAVE_GIGE_API) + if(WITH_IMAGEIO) add_definitions(-DHAVE_IMAGEIO=1) if(IOS) diff --git a/modules/highgui/include/opencv2/highgui/highgui_c.h b/modules/highgui/include/opencv2/highgui/highgui_c.h index e3bded9c29..7cd5783606 100644 --- a/modules/highgui/include/opencv2/highgui/highgui_c.h +++ b/modules/highgui/include/opencv2/highgui/highgui_c.h @@ -307,7 +307,9 @@ enum CV_CAP_XIAPI =1100, // XIMEA Camera API - CV_CAP_AVFOUNDATION = 1200 // AVFoundation framework for iOS (OS X Lion will have the same API) + CV_CAP_AVFOUNDATION = 1200, // AVFoundation framework for iOS (OS X Lion will have the same API) + + CV_CAP_GIGANETIX = 1300 // Smartek Giganetix GigEVisionSDK }; /* start capturing frames from camera: index = camera_index + domain_offset (CV_CAP_*) */ @@ -454,6 +456,15 @@ enum CV_CAP_PROP_IOS_DEVICE_FLASH = 9003, CV_CAP_PROP_IOS_DEVICE_WHITEBALANCE = 9004, CV_CAP_PROP_IOS_DEVICE_TORCH = 9005 + + // Properties of cameras available through Smartek Giganetix Ethernet Vision interface + /* --- Vladimir Litvinenko (litvinenko.vladimir@gmail.com) --- */ + ,CV_CAP_PROP_GIGA_FRAME_OFFSET_X = 10001, + CV_CAP_PROP_GIGA_FRAME_OFFSET_Y = 10002, + CV_CAP_PROP_GIGA_FRAME_WIDTH_MAX = 10003, + CV_CAP_PROP_GIGA_FRAME_HEIGH_MAX = 10004, + CV_CAP_PROP_GIGA_FRAME_SENS_WIDTH = 10005, + CV_CAP_PROP_GIGA_FRAME_SENS_HEIGH = 10006 }; enum diff --git a/modules/highgui/src/cap.cpp b/modules/highgui/src/cap.cpp index 1da6220e33..48a9d75fa3 100644 --- a/modules/highgui/src/cap.cpp +++ b/modules/highgui/src/cap.cpp @@ -149,6 +149,9 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index) #endif #ifdef HAVE_AVFOUNDATION CV_CAP_AVFOUNDATION, +#endif +#ifdef HAVE_GIGE_API + CV_CAP_GIGANETIX, #endif -1 }; @@ -182,6 +185,7 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index) defined(HAVE_XIMEA) || \ defined(HAVE_AVFOUNDATION) || \ defined(HAVE_ANDROID_NATIVE_CAMERA) || \ + defined(HAVE_GIGE_API) || \ (0) // local variable to memorize the captured device CvCapture *capture; @@ -318,6 +322,14 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index) return capture; break; #endif + +#ifdef HAVE_GIGE_API + case CV_CAP_GIGANETIX: + capture = cvCreateCameraCapture_Giganetix (index); + if (capture) + return capture; + break; // CV_CAP_GIGANETIX +#endif } } diff --git a/modules/highgui/src/precomp.hpp b/modules/highgui/src/precomp.hpp index 334a097e44..7ad292b63e 100644 --- a/modules/highgui/src/precomp.hpp +++ b/modules/highgui/src/precomp.hpp @@ -112,6 +112,7 @@ CvCapture * cvCreateCameraCapture_V4L( int index ); CvCapture * cvCreateCameraCapture_DC1394( int index ); CvCapture * cvCreateCameraCapture_DC1394_2( int index ); CvCapture* cvCreateCameraCapture_MIL( int index ); +CvCapture* cvCreateCameraCapture_Giganetix( int index ); CvCapture * cvCreateCameraCapture_CMU( int index ); CV_IMPL CvCapture * cvCreateCameraCapture_TYZX( int index ); CvCapture* cvCreateFileCapture_Win32( const char* filename ); diff --git a/modules/highgui/test/test_precomp.hpp b/modules/highgui/test/test_precomp.hpp index 676b80be86..5c2c0f004a 100644 --- a/modules/highgui/test/test_precomp.hpp +++ b/modules/highgui/test/test_precomp.hpp @@ -31,6 +31,7 @@ defined(HAVE_OPENNI) || \ defined(HAVE_XIMEA) || \ defined(HAVE_AVFOUNDATION) || \ + defined(HAVE_GIGE_API) || \ (0) //defined(HAVE_ANDROID_NATIVE_CAMERA) || - enable after #1193 # define BUILD_WITH_CAMERA_SUPPORT 1 -- GitLab