Commit 301c5b12f3c17d013ecb4b8d04e55d1d4b57fda0

Authored by Scott Klum
2 parents 5f2b72bc 2e73339b

Merge branch 'master' of https://github.com/biometrics/openbr into HEAD

CMakeLists.txt
@@ -9,9 +9,15 @@ set(CPACK_PACKAGE_NAME "OpenBR") @@ -9,9 +9,15 @@ set(CPACK_PACKAGE_NAME "OpenBR")
9 set(CPACK_PACKAGE_VENDOR "OpenBiometrics") 9 set(CPACK_PACKAGE_VENDOR "OpenBiometrics")
10 set(CPACK_PACKAGE_DESCRIPTION "Open Source Biometric Recognition") 10 set(CPACK_PACKAGE_DESCRIPTION "Open Source Biometric Recognition")
11 set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}) 11 set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
12 -set(CPACK_PACKAGE_VERSION_MAJOR 0)  
13 -set(CPACK_PACKAGE_VERSION_MINOR 6)  
14 -set(CPACK_PACKAGE_VERSION_PATCH 0) 12 +if(NOT DEFINED CPACK_PACKAGE_VERSION_MAJOR)
  13 + set(CPACK_PACKAGE_VERSION_MAJOR 0)
  14 +endif()
  15 +if(NOT DEFINED CPACK_PACKAGE_VERSION_MINOR)
  16 + set(CPACK_PACKAGE_VERSION_MINOR 6)
  17 +endif()
  18 +if(NOT DEFINED CPACK_PACKAGE_VERSION_PATCH)
  19 + set(CPACK_PACKAGE_VERSION_PATCH 0)
  20 +endif()
15 set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") 21 set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
16 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt") 22 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
17 set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md") 23 set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
@@ -67,20 +73,10 @@ if(${BR_EMBEDDED}) @@ -67,20 +73,10 @@ if(${BR_EMBEDDED})
67 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBR_EMBEDDED") 73 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBR_EMBEDDED")
68 endif() 74 endif()
69 75
70 -option(BR_DISTRIBUTED "Target distributed memory models")  
71 -if(${BR_DISTRIBUTED})  
72 - find_package(MPI REQUIRED)  
73 - set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS})  
74 - set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS})  
75 - include_directories(MPI_INCLUDE_PATH)  
76 - set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -DBR_DISTRIBUTED)  
77 - set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${MPI_LIBRARY})  
78 -endif()  
79 -  
80 # Find Qt 76 # Find Qt
81 set(QT_DEPENDENCIES Concurrent Core) 77 set(QT_DEPENDENCIES Concurrent Core)
82 option(BR_EMBEDDED "Limit software dependencies") 78 option(BR_EMBEDDED "Limit software dependencies")
83 -if(NOT ${BR_EMBEDDED}) 79 +if(NOT BR_EMBEDDED)
84 set(QT_DEPENDENCIES ${QT_DEPENDENCIES} Gui Network Sql Widgets Xml) 80 set(QT_DEPENDENCIES ${QT_DEPENDENCIES} Gui Network Sql Widgets Xml)
85 endif() 81 endif()
86 foreach(QT_DEPENDENCY ${QT_DEPENDENCIES}) 82 foreach(QT_DEPENDENCY ${QT_DEPENDENCIES})
@@ -90,8 +86,8 @@ set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${Qt5Core_QTMAIN_LIBRARIES}) @@ -90,8 +86,8 @@ set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${Qt5Core_QTMAIN_LIBRARIES})
90 86
91 # Find OpenCV 87 # Find OpenCV
92 find_package(OpenCV 2.4.5 REQUIRED) 88 find_package(OpenCV 2.4.5 REQUIRED)
93 -set(OPENCV_DEPENDENCIES opencv_calib3d opencv_core opencv_features2d opencv_flann opencv_gpu opencv_highgui opencv_imgproc opencv_ml opencv_nonfree opencv_objdetect opencv_photo opencv_video opencv_videostab opencv_superres opencv_stitching opencv_ocl opencv_legacy opencv_contrib)  
94 -set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${OpenCV_LIBS}) 89 +set(OPENCV_DEPENDENCIES opencv_core opencv_highgui opencv_imgproc opencv_ml opencv_objdetect)
  90 +set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${OPENCV_DEPENDENCIES})
95 91
96 # Find Alphanum 92 # Find Alphanum
97 find_package(Alphanum REQUIRED) 93 find_package(Alphanum REQUIRED)
@@ -142,7 +138,6 @@ endif() @@ -142,7 +138,6 @@ endif()
142 # Look for extensions to OpenBR 138 # Look for extensions to OpenBR
143 set(BR_THIRDPARTY_PLUGINS_DIR CACHE PATH "") 139 set(BR_THIRDPARTY_PLUGINS_DIR CACHE PATH "")
144 set(BR_THIRDPARTY_APPS_DIR CACHE PATH "") 140 set(BR_THIRDPARTY_APPS_DIR CACHE PATH "")
145 -set(BR_THIRDPARTY_DIR CACHE PATH "")  
146 mark_as_advanced(BR_THIRDPARTY_PLUGINS_DIR) 141 mark_as_advanced(BR_THIRDPARTY_PLUGINS_DIR)
147 mark_as_advanced(BR_THIRDPARTY_APPS_DIR) 142 mark_as_advanced(BR_THIRDPARTY_APPS_DIR)
148 143
@@ -156,9 +151,6 @@ if(BR_THIRDPARTY_DIR) @@ -156,9 +151,6 @@ if(BR_THIRDPARTY_DIR)
156 if(EXISTS "${BR_THIRDPARTY_DIR}/app") 151 if(EXISTS "${BR_THIRDPARTY_DIR}/app")
157 set(BR_THIRDPARTY_APPS_DIR ${BR_THIRDPARTY_APPS_DIR} "${BR_THIRDPARTY_DIR}/app") 152 set(BR_THIRDPARTY_APPS_DIR ${BR_THIRDPARTY_APPS_DIR} "${BR_THIRDPARTY_DIR}/app")
158 endif() 153 endif()
159 - if (EXISTS "${BR_THIRDPARTY_DIR}/share")  
160 - install(DIRECTORY ${BR_THIRDPARTY_DIR}/share DESTINATION .)  
161 - endif()  
162 else() 154 else()
163 set(BR_THIRDPARTY_DIR "" CACHE PATH "Path to proprietary software") 155 set(BR_THIRDPARTY_DIR "" CACHE PATH "Path to proprietary software")
164 mark_as_advanced(BR_THIRDPARTY_DIR) 156 mark_as_advanced(BR_THIRDPARTY_DIR)
@@ -177,9 +169,12 @@ foreach(DIR ${BR_THIRDPARTY_APPS_DIR}) @@ -177,9 +169,12 @@ foreach(DIR ${BR_THIRDPARTY_APPS_DIR})
177 endforeach() 169 endforeach()
178 170
179 # Install 171 # Install
180 -install(FILES LICENSE.txt README.md DESTINATION share/openbr)  
181 -install(DIRECTORY share DESTINATION .)  
182 -install(DIRECTORY ${BR_THIRDPARTY_SHARE} DESTINATION share) 172 +option(BR_INSTALL_SHARE "Install share/openbr files." ON)
  173 +if(${BR_INSTALL_SHARE})
  174 + install(FILES LICENSE.txt README.md DESTINATION share/openbr)
  175 + install(DIRECTORY share DESTINATION .)
  176 + install(DIRECTORY ${BR_THIRDPARTY_SHARE} DESTINATION share)
  177 +endif()
183 178
184 # install brpy 179 # install brpy
185 option(BR_INSTALL_BRPY "Install brpy, the Python wrapper to the C API (requires Python)") 180 option(BR_INSTALL_BRPY "Install brpy, the Python wrapper to the C API (requires Python)")
@@ -190,29 +185,29 @@ if(${BR_INSTALL_BRPY}) @@ -190,29 +185,29 @@ if(${BR_INSTALL_BRPY})
190 endif() 185 endif()
191 186
192 # Package 187 # Package
193 -if (NOT BR_PACKAGE_THIRDPARTY)  
194 -set(CPACK_PACKAGE_EXECUTABLES "OpenBR" "OpenBR")  
195 -set(CPACK_CREATE_DESKTOP_LINKS "OpenBR")  
196 -if(CMAKE_HOST_WIN32)  
197 - set(CPACK_NSIS_MODIFY_PATH ON)  
198 - set(CPACK_NSIS_MUI_ICON ${NATIVE_ICON})  
199 - set(CPACK_NSIS_MUI_UNIICON ${NATIVE_ICON})  
200 - set(CPACK_NSIS_MENU_LINKS "doc/html/index.html" "Documentation")  
201 - if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")  
202 - set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64") 188 +if(NOT BR_PACKAGE_THIRDPARTY)
  189 + set(CPACK_PACKAGE_EXECUTABLES "OpenBR" "OpenBR")
  190 + set(CPACK_CREATE_DESKTOP_LINKS "OpenBR")
  191 + if(CMAKE_HOST_WIN32)
  192 + set(CPACK_NSIS_MODIFY_PATH ON)
  193 + set(CPACK_NSIS_MUI_ICON ${NATIVE_ICON})
  194 + set(CPACK_NSIS_MUI_UNIICON ${NATIVE_ICON})
  195 + set(CPACK_NSIS_MENU_LINKS "doc/html/index.html" "Documentation")
  196 + if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
  197 + set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
  198 + endif()
  199 + set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\br-gui.exe")
  200 + elseif(CMAKE_HOST_APPLE)
  201 + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/README.md" "README.txt" COPYONLY)
  202 + set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt")
  203 + set(CPACK_BUNDLE_NAME ${CPACK_PACKAGE_NAME})
  204 + set(CPACK_BUNDLE_ICON ${NATIVE_ICON})
  205 + set(CPACK_BUNDLE_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
  206 + set(CPACK_BUNDLE_STARTUP_COMMAND ${BR_SHARE_DIR}/bundle.sh)
  207 + configure_file(${BR_SHARE_DIR}/Info.plist.in Info.plist)
  208 + else()
  209 + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "josh.klontz@gmail.com")
203 endif() 210 endif()
204 - set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\br-gui.exe")  
205 -elseif(CMAKE_HOST_APPLE)  
206 - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/README.md" "README.txt" COPYONLY)  
207 - set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt")  
208 - set(CPACK_BUNDLE_NAME ${CPACK_PACKAGE_NAME})  
209 - set(CPACK_BUNDLE_ICON ${NATIVE_ICON})  
210 - set(CPACK_BUNDLE_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)  
211 - set(CPACK_BUNDLE_STARTUP_COMMAND ${BR_SHARE_DIR}/bundle.sh)  
212 - configure_file(${BR_SHARE_DIR}/Info.plist.in Info.plist)  
213 -else()  
214 - set(CPACK_DEBIAN_PACKAGE_MAINTAINER "josh.klontz@gmail.com")  
215 -endif()  
216 211
217 -include(CPack) 212 + include(CPack)
218 endif() 213 endif()
app/CMakeLists.txt
1 # Build the command line interface 1 # Build the command line interface
2 add_subdirectory(br) 2 add_subdirectory(br)
3 3
4 -if (NOT BR_PACKAGE_THIRDPARTY)  
5 -# Build examples/tests  
6 -add_subdirectory(examples) 4 +if(NOT BR_PACKAGE_THIRDPARTY)
  5 + if(NOT BR_EMBEDDED)
  6 + # Build examples/tests
  7 + add_subdirectory(examples)
7 8
8 -# Build additional OpenBR utilities  
9 -if(NOT ${BR_EMBEDDED})  
10 - add_subdirectory(br-gui)  
11 -endif() 9 + # Build additional OpenBR utilities
  10 + add_subdirectory(br-gui)
  11 + endif()
12 endif() 12 endif()
openbr/CMakeLists.txt
@@ -2,19 +2,26 @@ @@ -2,19 +2,26 @@
2 configure_file(${BR_SHARE_DIR}/version.h.in version.h) 2 configure_file(${BR_SHARE_DIR}/version.h.in version.h)
3 include_directories(${CMAKE_CURRENT_BINARY_DIR}) 3 include_directories(${CMAKE_CURRENT_BINARY_DIR})
4 4
5 -# Janus API  
6 -include_directories(janus/include)  
7 -install(DIRECTORY janus/include DESTINATION .)  
8 -set(BR_JANUS janus/src/opencv_io/opencv_io.cpp)  
9 -add_definitions(-DJANUS_LIBRARY)  
10 -  
11 # Collect source files 5 # Collect source files
12 -aux_source_directory(. SRC) 6 +set(SRC openbr.cpp
  7 + openbr_plugin.cpp
  8 + universal_template.cpp)
13 aux_source_directory(core BR_CORE) 9 aux_source_directory(core BR_CORE)
14 include(plugins/plugins.cmake) 10 include(plugins/plugins.cmake)
15 11
  12 +# Janus API
  13 +option(BR_WITH_JANUS "Build IARPA Janus related applications." ON)
  14 +if(BR_WITH_JANUS)
  15 + include_directories(janus/include)
  16 + install(DIRECTORY janus/include DESTINATION .)
  17 + set(BR_JANUS janus.cpp
  18 + janus_io.cpp
  19 + janus/src/opencv_io/opencv_io.cpp)
  20 + add_definitions(-DJANUS_LIBRARY)
  21 +endif()
  22 +
16 # Optional GUI module 23 # Optional GUI module
17 -if(NOT ${BR_EMBEDDED}) 24 +if(NOT BR_EMBEDDED)
18 aux_source_directory(gui BR_GUI) 25 aux_source_directory(gui BR_GUI)
19 qt5_add_resources(BR_ICONS ../share/openbr/icons.qrc) 26 qt5_add_resources(BR_ICONS ../share/openbr/icons.qrc)
20 file(GLOB HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/gui/*.h) 27 file(GLOB HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/gui/*.h)
@@ -32,14 +39,13 @@ target_link_libraries(openbr ${BR_THIRDPARTY_LIBS}) @@ -32,14 +39,13 @@ target_link_libraries(openbr ${BR_THIRDPARTY_LIBS})
32 add_cppcheck(openbr) 39 add_cppcheck(openbr)
33 40
34 # Janus implementation 41 # Janus implementation
35 -set(BR_WITH_JANUS ON CACHE BOOL "Build IARPA Janus related applications.")  
36 -if (BR_WITH_JANUS)  
37 -set(JANUS_BUILD_PP5_WRAPPER ${BR_WITH_PP5} CACHE BOOL "Build Janus implementation using PittPatt 5")  
38 -set(JANUS_BUILD_DOCS ${BR_BUILD_DOCUMENTATION} CACHE BOOL "Build Janus HTML Doxygen documentation")  
39 -mark_as_advanced(JANUS_BUILD_PP5_WRAPPER)  
40 -mark_as_advanced(JANUS_BUILD_DOCS)  
41 -set(JANUS_IMPLEMENTATION openbr)  
42 -add_subdirectory(janus) 42 +if(BR_WITH_JANUS)
  43 + set(JANUS_BUILD_PP5_WRAPPER ${BR_WITH_PP5} CACHE BOOL "Build Janus implementation using PittPatt 5")
  44 + set(JANUS_BUILD_DOCS ${BR_BUILD_DOCUMENTATION} CACHE BOOL "Build Janus HTML Doxygen documentation")
  45 + mark_as_advanced(JANUS_BUILD_PP5_WRAPPER)
  46 + mark_as_advanced(JANUS_BUILD_DOCS)
  47 + set(JANUS_IMPLEMENTATION openbr)
  48 + add_subdirectory(janus)
43 endif() 49 endif()
44 50
45 # Install 51 # Install
@@ -52,6 +58,9 @@ install(FILES ${HEADERS} DESTINATION include/openbr) @@ -52,6 +58,9 @@ install(FILES ${HEADERS} DESTINATION include/openbr)
52 include(InstallDependencies) 58 include(InstallDependencies)
53 install_compiler_libraries() 59 install_compiler_libraries()
54 install_qt_libraries(QT_DEPENDENCIES) 60 install_qt_libraries(QT_DEPENDENCIES)
55 -install_qt_imageformats() 61 +if(NOT BR_EMBEDDED)
  62 + install_qt_imageformats()
  63 +endif()
56 install_qt_misc() 64 install_qt_misc()
57 install_opencv_libraries(OPENCV_DEPENDENCIES) 65 install_opencv_libraries(OPENCV_DEPENDENCIES)
  66 +install_ffmpeg()
openbr/openbr.cpp
@@ -305,11 +305,16 @@ const char *br_version() @@ -305,11 +305,16 @@ const char *br_version()
305 305
306 void br_slave_process(const char *baseName) 306 void br_slave_process(const char *baseName)
307 { 307 {
  308 +#ifndef BR_EMBEDDED
308 WorkerProcess *worker = new WorkerProcess; 309 WorkerProcess *worker = new WorkerProcess;
309 worker->transform = Globals->algorithm; 310 worker->transform = Globals->algorithm;
310 worker->baseName = baseName; 311 worker->baseName = baseName;
311 worker->mainLoop(); 312 worker->mainLoop();
312 delete worker; 313 delete worker;
  314 +#else
  315 + (void) baseName;
  316 + qFatal("br_slave_process not supported in embedded builds!");
  317 +#endif
313 } 318 }
314 319
315 br_template br_load_img(const char *data, int len) 320 br_template br_load_img(const char *data, int len)
openbr/openbr_plugin.cpp
@@ -19,7 +19,6 @@ @@ -19,7 +19,6 @@
19 #include <QFutureSynchronizer> 19 #include <QFutureSynchronizer>
20 #include <QJsonDocument> 20 #include <QJsonDocument>
21 #include <QJsonObject> 21 #include <QJsonObject>
22 -#include <QLocalSocket>  
23 #include <QMetaProperty> 22 #include <QMetaProperty>
24 #include <qnumeric.h> 23 #include <qnumeric.h>
25 #include <QPointF> 24 #include <QPointF>
@@ -47,8 +46,6 @@ @@ -47,8 +46,6 @@
47 using namespace br; 46 using namespace br;
48 using namespace cv; 47 using namespace cv;
49 48
50 -Q_DECLARE_METATYPE(QLocalSocket::LocalSocketState)  
51 -  
52 static const QMetaObject *getInterface(const QObject *obj) 49 static const QMetaObject *getInterface(const QObject *obj)
53 { 50 {
54 const QMetaObject *baseClass = obj->metaObject(); 51 const QMetaObject *baseClass = obj->metaObject();
@@ -1277,8 +1274,6 @@ void br::Context::initialize(int &amp;argc, char *argv[], QString sdkPath, bool useG @@ -1277,8 +1274,6 @@ void br::Context::initialize(int &amp;argc, char *argv[], QString sdkPath, bool useG
1277 qRegisterMetaType< QList<br::Distance*> >(); 1274 qRegisterMetaType< QList<br::Distance*> >();
1278 qRegisterMetaType< QList<br::Representation* > >(); 1275 qRegisterMetaType< QList<br::Representation* > >();
1279 qRegisterMetaType< QList<br::Classifier* > >(); 1276 qRegisterMetaType< QList<br::Classifier* > >();
1280 - qRegisterMetaType< QAbstractSocket::SocketState> ();  
1281 - qRegisterMetaType< QLocalSocket::LocalSocketState> ();  
1282 1277
1283 Globals = new Context(); 1278 Globals = new Context();
1284 Globals->init(File()); 1279 Globals->init(File());
openbr/plugins/cmake/eigen3.cmake
@@ -2,7 +2,9 @@ set(BR_WITH_EIGEN3 ON CACHE BOOL &quot;Build Eigen3 plugins&quot;) @@ -2,7 +2,9 @@ set(BR_WITH_EIGEN3 ON CACHE BOOL &quot;Build Eigen3 plugins&quot;)
2 2
3 if(${BR_WITH_EIGEN3}) 3 if(${BR_WITH_EIGEN3})
4 find_package(Eigen3 REQUIRED) 4 find_package(Eigen3 REQUIRED)
5 - install(FILES ${EIGEN3_LICENSE} RENAME Eigen3 DESTINATION share/openbr/licenses) 5 + if(${BR_INSTALL_SHARE})
  6 + install(FILES ${EIGEN3_LICENSE} RENAME Eigen3 DESTINATION share/openbr/licenses)
  7 + endif()
6 else() 8 else()
7 set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/classification/lda.cpp) 9 set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/classification/lda.cpp)
8 set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/distance/L1.cpp) 10 set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/distance/L1.cpp)
openbr/plugins/cmake/network.cmake
1 -set(BR_WITH_QTNETWORK ON CACHE BOOL "Build with QtNetwork") 1 +option(BR_WITH_QTNETWORK "Build with QtNetwork" ON)
2 if(${BR_WITH_QTNETWORK}) 2 if(${BR_WITH_QTNETWORK})
3 find_package(Qt5Network) 3 find_package(Qt5Network)
4 find_package(HttpParser) 4 find_package(HttpParser)
5 set(QT_DEPENDENCIES ${QT_DEPENDENCIES} Network) 5 set(QT_DEPENDENCIES ${QT_DEPENDENCIES} Network)
6 set(BR_THIRDPARTY_SRC ${BR_THIRDPARTY_SRC} ${HTTPPARSER_SRC}) 6 set(BR_THIRDPARTY_SRC ${BR_THIRDPARTY_SRC} ${HTTPPARSER_SRC})
7 - install(FILES ${HTTPPARSER_LICENSE} RENAME http-parser DESTINATION share/openbr/licenses) 7 + if(${BR_INSTALL_SHARE})
  8 + install(FILES ${HTTPPARSER_LICENSE} RENAME http-parser DESTINATION share/openbr/licenses)
  9 + endif()
8 else() 10 else()
9 - set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/format/url.cpp)  
10 - set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/format/post.cpp)  
11 - set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/gallery/post.cpp) 11 + set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/core/processwrapper.cpp
  12 + plugins/io/download.cpp
  13 + plugins/format/url.cpp
  14 + plugins/format/post.cpp
  15 + plugins/gallery/google.cpp
  16 + plugins/gallery/post.cpp)
12 endif() 17 endif()
openbr/plugins/cmake/opencv.cmake 0 โ†’ 100644
  1 +option(BR_WITH_OPENCV_CONTRIB "Build with OpenCV contrib plugins." ON)
  2 +if(${BR_WITH_OPENCV_CONTRIB})
  3 + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} opencv_contrib)
  4 + set(OPENCV_DEPENDENCIES ${OPENCV_DEPENDENCIES} opencv_contrib)
  5 +else()
  6 + set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/imgproc/heatmap.cpp
  7 + plugins/imgproc/shapeaxisratio.cpp)
  8 +endif()
  9 +
  10 +option(BR_WITH_OPENCV_FEATURES2D "Build with OpenCV features2d plugins." ON)
  11 +if(${BR_WITH_OPENCV_FEATURES2D})
  12 + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} opencv_features2d)
  13 + set(OPENCV_DEPENDENCIES ${OPENCV_DEPENDENCIES} opencv_features2d)
  14 +else()
  15 + set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/distance/keypointmatcher.cpp
  16 + plugins/imgproc/keypointdescriptor.cpp
  17 + plugins/metadata/keypointdetector.cpp)
  18 +endif()
  19 +
  20 +option(BR_WITH_OPENCV_FLANN "Build with OpenCV flann plugins." ON)
  21 +if(${BR_WITH_OPENCV_FLANN})
  22 + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} opencv_flann)
  23 + set(OPENCV_DEPENDENCIES ${OPENCV_DEPENDENCIES} opencv_flann)
  24 +else()
  25 + set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/cluster/kmeans.cpp
  26 + plugins/cluster/randomcentroids.cpp)
  27 +endif()
  28 +
  29 +option(BR_WITH_OPENCV_NONFREE "Build with OpenCV nonfree plugins." ON)
  30 +if(${BR_WITH_OPENCV_NONFREE})
  31 + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} opencv_nonfree)
  32 + set(OPENCV_DEPENDENCIES ${OPENCV_DEPENDENCIES} opencv_nonfree)
  33 +else()
  34 + set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/imgproc/custom_sift.cpp
  35 + plugins/imgproc/sift.cpp)
  36 +endif()
  37 +
  38 +option(BR_WITH_OPENCV_PHOTO "Build with OpenCV photo plugins." ON)
  39 +if(${BR_WITH_OPENCV_PHOTO})
  40 + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} opencv_photo)
  41 + set(OPENCV_DEPENDENCIES ${OPENCV_DEPENDENCIES} opencv_photo)
  42 +else()
  43 + set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/imgproc/denoising.cpp
  44 + plugins/imgproc/inpaint.cpp)
  45 +endif()
  46 +
  47 +option(BR_WITH_OPENCV_VIDEO "Build with OpenCV video plugins." ON)
  48 +if(${BR_WITH_OPENCV_VIDEO})
  49 + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} opencv_video)
  50 + set(OPENCV_DEPENDENCIES ${OPENCV_DEPENDENCIES} opencv_video)
  51 +else()
  52 + set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/imgproc/opticalflow.cpp)
  53 +endif()
openbr/plugins/cmake/stasm4.cmake
1 -set(BR_WITH_STASM4 ON CACHE BOOL "Build with Stasm") 1 +option(BR_WITH_STASM4 "Build with Stasm" ON)
2 2
3 if(${BR_WITH_STASM4}) 3 if(${BR_WITH_STASM4})
4 find_package(Stasm4 REQUIRED) 4 find_package(Stasm4 REQUIRED)
openbr/plugins/cmake/vbb.cmake
1 -if(NOT ${BR_WITH_CVMATIO}) 1 +if(NOT BR_WITH_CVMATIO)
2 set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/gallery/vbb.cpp) 2 set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/gallery/vbb.cpp)
3 endif() 3 endif()
openbr/plugins/core/processwrapper.cpp
@@ -26,6 +26,8 @@ @@ -26,6 +26,8 @@
26 #include <openbr/plugins/openbr_internal.h> 26 #include <openbr/plugins/openbr_internal.h>
27 #include <openbr/core/opencvutils.h> 27 #include <openbr/core/opencvutils.h>
28 28
  29 +Q_DECLARE_METATYPE(QLocalSocket::LocalSocketState)
  30 +
29 using namespace cv; 31 using namespace cv;
30 32
31 namespace br 33 namespace br
@@ -39,6 +41,9 @@ public: @@ -39,6 +41,9 @@ public:
39 QThread *basis; 41 QThread *basis;
40 CommunicationManager() 42 CommunicationManager()
41 { 43 {
  44 + qRegisterMetaType< QAbstractSocket::SocketState> ();
  45 + qRegisterMetaType< QLocalSocket::LocalSocketState> ();
  46 +
42 timeout_ms = 30000; 47 timeout_ms = 30000;
43 48
44 basis = new QThread; 49 basis = new QThread;
openbr/plugins/imgproc/custom_sift.cpp
@@ -105,7 +105,7 @@ @@ -105,7 +105,7 @@
105 #include <iostream> 105 #include <iostream>
106 #include <stdarg.h> 106 #include <stdarg.h>
107 #include <opencv2/imgproc/imgproc.hpp> 107 #include <opencv2/imgproc/imgproc.hpp>
108 -#include <opencv2/nonfree/features2d.hpp> 108 +#include <opencv2/nonfree/nonfree.hpp>
109 109
110 using namespace cv; 110 using namespace cv;
111 111
share/openbr/cmake/InstallDependencies.cmake
@@ -116,3 +116,38 @@ function(install_r_runtime) @@ -116,3 +116,38 @@ function(install_r_runtime)
116 install(DIRECTORY ${R_DIR}/ DESTINATION R) 116 install(DIRECTORY ${R_DIR}/ DESTINATION R)
117 endif() 117 endif()
118 endfunction() 118 endfunction()
  119 +
  120 +# FFMPEG
  121 +function(install_ffmpeg_help LIB)
  122 + if(LIB)
  123 + string(REGEX REPLACE "\\.[^.]*$" "" STRIPEXT ${LIB})
  124 + file(GLOB LIBS "${STRIPEXT}.*[^a]")
  125 + install(FILES ${LIBS} DESTINATION lib)
  126 + endif()
  127 +endfunction()
  128 +
  129 +function(install_ffmpeg)
  130 + if(${BR_INSTALL_DEPENDENCIES})
  131 + if(WIN32)
  132 + list(GET OpenCV_LIB_DIR 0 cv_lib_stripped)
  133 + if(${CMAKE_SIZEOF_VOID_P} MATCHES 8)
  134 + set(FFMPEGSUFFIX "_64")
  135 + else()
  136 + set(FFMPEGSUFFIX "")
  137 + endif()
  138 + install(FILES ${cv_lib_stripped}/../bin/${BR_INSTALL_DEPENDENCIES_PREFIX}opencv_ffmpeg${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}${FFMPEGSUFFIX}.dll DESTINATION bin)
  139 + else()
  140 + # find_library(AVCODEC avcodec)
  141 + # install_ffmpeg_help(${AVCODEC})
  142 +
  143 + # find_library(AVUTIL avutil)
  144 + # install_ffmpeg_help(${AVUTIL})
  145 +
  146 + # find_library(AVFORMAT avformat)
  147 + # install_ffmpeg_help(${AVFORMAT})
  148 +
  149 + # find_library(SWSCALE swscale)
  150 + # install_ffmpeg_help(${SWSCALE})
  151 + endif()
  152 + endif()
  153 +endfunction()
share/openbr/plotting/plot_utils.R
@@ -91,8 +91,8 @@ plotLine &lt;- function(lineData=NULL, options=NULL, flipY=FALSE, geometry=&quot;line&quot;) @@ -91,8 +91,8 @@ plotLine &lt;- function(lineData=NULL, options=NULL, flipY=FALSE, geometry=&quot;line&quot;)
91 else 91 else
92 p <- p + scale_y_continuous(labels=if("yLabels" %in% names(options)) eval(parse(text=options$yLabels)) else percent, breaks=if("yBreaks" %in% names(options)) eval(parse(text=options$yBreaks)) else pretty_breaks(n=10)) 92 p <- p + scale_y_continuous(labels=if("yLabels" %in% names(options)) eval(parse(text=options$yLabels)) else percent, breaks=if("yBreaks" %in% names(options)) eval(parse(text=options$yBreaks)) else pretty_breaks(n=10))
93 93
94 - if ("xLimits" %in% names(options)) p <- p + xlim(eval(parse(text=options$xLimits)))  
95 - if ("yLimits" %in% names(options)) p <- p + ylim(eval(parse(text=options$yLimits))) 94 + if ("xLimits" %in% names(options)) p <- p + coord_cartesian(xlim=eval(parse(text=options$xLimits)))
  95 + if ("yLimits" %in% names(options)) p <- p + coord_cartesian(ylim=eval(parse(text=options$yLimits)))
96 p <- p + theme(legend.title = element_text(size = textSize), legend.text = element_text(size = textSize), plot.title = element_text(size = textSize), axis.text = element_text(size = textSize), axis.title.x = element_text(size = textSize), axis.title.y = element_text(size = textSize), legend.position=if("legendPosition" %in% names(options)) eval(parse(text=options$legendPosition)) else "bottom", legend.background = element_rect(fill = 'white'), panel.grid.major = element_line(colour = "gray"), panel.grid.minor = element_line(colour = "gray", linetype = "dashed")) 96 p <- p + theme(legend.title = element_text(size = textSize), legend.text = element_text(size = textSize), plot.title = element_text(size = textSize), axis.text = element_text(size = textSize), axis.title.x = element_text(size = textSize), axis.title.y = element_text(size = textSize), legend.position=if("legendPosition" %in% names(options)) eval(parse(text=options$legendPosition)) else "bottom", legend.background = element_rect(fill = 'white'), panel.grid.major = element_line(colour = "gray"), panel.grid.minor = element_line(colour = "gray", linetype = "dashed"))
97 p <- p + guides(col=guide_legend(ncol=ncol)) 97 p <- p + guides(col=guide_legend(ncol=ncol))
98 return(p) 98 return(p)
@@ -240,8 +240,8 @@ summarySE &lt;- function(data=NULL, measurevar, groupvars=NULL, na.rm=FALSE, conf.i @@ -240,8 +240,8 @@ summarySE &lt;- function(data=NULL, measurevar, groupvars=NULL, na.rm=FALSE, conf.i
240 ciMult <- qt(conf.interval/2 + .5, datac$N-1) 240 ciMult <- qt(conf.interval/2 + .5, datac$N-1)
241 datac$ci <- datac$se * ciMult 241 datac$ci <- datac$se * ciMult
242 242
243 - datac$upper <- if(datac[, measurevar] + datac$ci < 1) (datac[, measurevar] + datac$ci) else 1  
244 - datac$lower <- if(datac[, measurevar] - datac$ci > 0) (datac[, measurevar] - datac$ci) else 0 243 + datac$upper <- ifelse(datac[,measurevar] + datac$ci < 1, datac[,measurevar] + datac$ci, 1)
  244 + datac$lower <- ifelse(datac[,measurevar] - datac$ci > 0, datac[,measurevar] - datac$ci, 0)
245 245
246 return(datac) 246 return(datac)
247 } 247 }