mirror of
https://github.com/opencv/opencv.git
synced 2026-07-25 21:33:04 +04:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e40becab1 | |||
| 60eda6f25c | |||
| 2e78a3e5e9 | |||
| 966d35a9fb | |||
| 42447a7610 | |||
| ca50969c2b | |||
| 2d3e170370 | |||
| 8a37fc8223 | |||
| a5c20f8592 | |||
| 96a2edb375 | |||
| 15b313ce4b | |||
| 1ea6568951 | |||
| 56654ae360 | |||
| 9a3e53e738 | |||
| 2243bfa181 | |||
| 33cd7f38a8 | |||
| 2fc0ce5c24 | |||
| c5d009d6c4 | |||
| 7d28541bbe |
@@ -8,7 +8,8 @@ if(BUILD_ZLIB)
|
||||
else()
|
||||
include(FindZLIB)
|
||||
if(ZLIB_FOUND AND ANDROID)
|
||||
if(ZLIB_LIBRARY STREQUAL "${ANDROID_SYSROOT}/usr/lib/libz.so")
|
||||
if(ZLIB_LIBRARIES STREQUAL "${ANDROID_SYSROOT}/usr/lib/libz.so" OR
|
||||
ZLIB_LIBRARIES STREQUAL "${ANDROID_SYSROOT}/usr/lib64/libz.so")
|
||||
set(ZLIB_LIBRARY z)
|
||||
set(ZLIB_LIBRARIES z)
|
||||
endif()
|
||||
|
||||
@@ -12,8 +12,8 @@ endif(WITH_VFW)
|
||||
|
||||
# --- GStreamer ---
|
||||
ocv_clear_vars(HAVE_GSTREAMER)
|
||||
# try to find gstreamer 1.x first
|
||||
if(WITH_GSTREAMER)
|
||||
# try to find gstreamer 1.x first if 0.10 was not requested
|
||||
if(WITH_GSTREAMER AND NOT WITH_GSTREAMER_0_10)
|
||||
CHECK_MODULE(gstreamer-base-1.0 HAVE_GSTREAMER_BASE)
|
||||
CHECK_MODULE(gstreamer-video-1.0 HAVE_GSTREAMER_VIDEO)
|
||||
CHECK_MODULE(gstreamer-app-1.0 HAVE_GSTREAMER_APP)
|
||||
@@ -29,7 +29,7 @@ if(WITH_GSTREAMER)
|
||||
set(GSTREAMER_PBUTILS_VERSION ${ALIASOF_gstreamer-pbutils-1.0_VERSION})
|
||||
endif()
|
||||
|
||||
endif(WITH_GSTREAMER)
|
||||
endif()
|
||||
|
||||
# gstreamer support was requested but could not find gstreamer 1.x,
|
||||
# so fallback/try to find gstreamer 0.10
|
||||
|
||||
@@ -576,7 +576,10 @@ macro(ocv_create_module)
|
||||
if(NOT "${ARGN}" STREQUAL "SKIP_LINK")
|
||||
target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS})
|
||||
target_link_libraries(${the_module} LINK_INTERFACE_LIBRARIES ${OPENCV_MODULE_${the_module}_DEPS})
|
||||
target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
|
||||
set(extra_deps ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
|
||||
ocv_extract_simple_libs(extra_deps _simple_deps _other_deps)
|
||||
target_link_libraries(${the_module} LINK_INTERFACE_LIBRARIES ${_simple_deps}) # this list goes to "export"
|
||||
target_link_libraries(${the_module} ${extra_deps})
|
||||
endif()
|
||||
|
||||
add_dependencies(opencv_modules ${the_module})
|
||||
|
||||
@@ -19,6 +19,7 @@ OpenCV makes it easy for businesses to utilize and modify the code.")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "${OPENCV_VERSION_MINOR}")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "${OPENCV_VERSION_PATCH}")
|
||||
set(CPACK_PACKAGE_VERSION "${OPENCV_VCSVERSION}")
|
||||
set(OPENCV_DEBIAN_COPYRIGHT_FILE "")
|
||||
endif(NOT OPENCV_CUSTOM_PACKAGE_INFO)
|
||||
|
||||
set(CPACK_STRIP_FILES 1)
|
||||
@@ -126,6 +127,8 @@ foreach(module calib3d contrib core features2d flann gpu highgui imgproc legacy
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
list(APPEND STD_OPENCV_DEV "libhighgui-dev" "libcv-dev" "libcvaux-dev")
|
||||
|
||||
string(REPLACE ";" ", " CPACK_COMPONENT_LIBS_CONFLICTS "${STD_OPENCV_LIBS}")
|
||||
string(REPLACE ";" ", " CPACK_COMPONENT_LIBS_PROVIDES "${STD_OPENCV_LIBS}")
|
||||
string(REPLACE ";" ", " CPACK_COMPONENT_LIBS_REPLACES "${STD_OPENCV_LIBS}")
|
||||
@@ -192,7 +195,7 @@ if(CPACK_GENERATOR STREQUAL "DEB")
|
||||
set(DEBIAN_CHANGELOG_OUT_FILE "${CMAKE_BINARY_DIR}/deb-packages-gen/${comp}/changelog.Debian")
|
||||
set(DEBIAN_CHANGELOG_OUT_FILE_GZ "${CMAKE_BINARY_DIR}/deb-packages-gen/${comp}/changelog.Debian.gz")
|
||||
set(CHANGELOG_PACKAGE_NAME "${CPACK_DEBIAN_COMPONENT_${comp_upcase}_NAME}")
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/changelog.Debian.in" "${DEBIAN_CHANGELOG_OUT_FILE}" @ONLY)
|
||||
configure_file("${CMAKE_SOURCE_DIR}/cmake/templates/changelog.Debian.in" "${DEBIAN_CHANGELOG_OUT_FILE}" @ONLY)
|
||||
|
||||
execute_process(COMMAND "${GZIP_TOOL}" "-cf9" "${DEBIAN_CHANGELOG_OUT_FILE}"
|
||||
OUTPUT_FILE "${DEBIAN_CHANGELOG_OUT_FILE_GZ}"
|
||||
@@ -201,6 +204,25 @@ if(CPACK_GENERATOR STREQUAL "DEB")
|
||||
install(FILES "${DEBIAN_CHANGELOG_OUT_FILE_GZ}"
|
||||
DESTINATION "share/doc/${CPACK_DEBIAN_COMPONENT_${comp_upcase}_NAME}"
|
||||
COMPONENT "${comp}")
|
||||
|
||||
set(CHANGELOG_OUT_FILE "${CMAKE_BINARY_DIR}/deb-packages-gen/${comp}/changelog")
|
||||
set(CHANGELOG_OUT_FILE_GZ "${CMAKE_BINARY_DIR}/deb-packages-gen/${comp}/changelog.gz")
|
||||
file(WRITE ${CHANGELOG_OUT_FILE} "Upstream changelog stub. See https://github.com/Itseez/opencv/wiki/ChangeLog")
|
||||
|
||||
execute_process(COMMAND "${GZIP_TOOL}" "-cf9" "${CHANGELOG_OUT_FILE}"
|
||||
OUTPUT_FILE "${CHANGELOG_OUT_FILE_GZ}"
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
|
||||
|
||||
install(FILES "${CHANGELOG_OUT_FILE_GZ}"
|
||||
DESTINATION "share/doc/${CPACK_DEBIAN_COMPONENT_${comp_upcase}_NAME}"
|
||||
COMPONENT "${comp}")
|
||||
|
||||
if(OPENCV_DEBIAN_COPYRIGHT_FILE)
|
||||
install(FILES "${OPENCV_DEBIAN_COPYRIGHT_FILE}"
|
||||
DESTINATION "share/doc/${CPACK_DEBIAN_COMPONENT_${comp_upcase}_NAME}"
|
||||
COMPONENT "${comp}")
|
||||
endif()
|
||||
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -630,3 +630,21 @@ function(ocv_source_group group)
|
||||
file(GLOB srcs ${OCV_SOURCE_GROUP_GLOB})
|
||||
source_group(${group} FILES ${srcs})
|
||||
endfunction()
|
||||
|
||||
# build the list of simple dependencies, that links via "-l"
|
||||
# _all_libs - name of variable with input list
|
||||
# _simple - name of variable with output list of simple libs
|
||||
# _other - name of variable with _all_libs - _simple
|
||||
macro(ocv_extract_simple_libs _all_libs _simple _other)
|
||||
set(${_simple} "")
|
||||
set(${_other} "")
|
||||
foreach(_l ${${_all_libs}})
|
||||
if(TARGET ${_l})
|
||||
list(APPEND ${_other} ${_l})
|
||||
elseif(EXISTS "${_l}")
|
||||
list(APPEND ${_other} ${_l})
|
||||
else()
|
||||
list(APPEND ${_simple} ${_l})
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@CHANGELOG_PACKAGE_NAME@ (@CPACK_PACKAGE_VERSION@) unstable; urgency=low
|
||||
* Debian changelog stub. See upstream changelog or release notes in user
|
||||
* Debian changelog stub. See https://github.com/Itseez/opencv/wiki/ChangeLog
|
||||
or release notes in user
|
||||
documentation for more details.
|
||||
-- @CPACK_PACKAGE_CONTACT@ @CHANGELOG_PACKAGE_DATE@
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
Format: http://dep.debian.net/deps/dep5
|
||||
|
||||
Files: *
|
||||
Copyright: 2000-2015, Intel Corporation
|
||||
2009-2011, Willow Garage Inc.
|
||||
2009-2015, NVIDIA Corporation
|
||||
2010-2013, Advanced Micro Devices, Inc.
|
||||
2015, OpenCV Foundation
|
||||
2015, Itseez Inc.
|
||||
License: BSD-3-clause
|
||||
By downloading, copying, installing or using the software you agree to this
|
||||
license. If you do not agree to this license, do not download, install, copy
|
||||
or use the software.
|
||||
.
|
||||
.
|
||||
License Agreement
|
||||
For Open Source Computer Vision Library
|
||||
(3-clause BSD License)
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
.
|
||||
\* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
.
|
||||
\* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
.
|
||||
\* Neither the names of the copyright holders nor the names of the
|
||||
contributors may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
This software is provided by the copyright holders and contributors "as is"
|
||||
and any express or implied warranties, including, but not limited to, the
|
||||
implied warranties of merchantability and fitness for a particular purpose are
|
||||
disclaimed. In no event shall copyright holders or contributors be liable for
|
||||
any direct, indirect, incidental, special, exemplary, or consequential damages
|
||||
(including, but not limited to, procurement of substitute goods or services;
|
||||
loss of use, data, or profits; or business interruption) however caused
|
||||
and on any theory of liability, whether in contract, strict liability,
|
||||
or tort (including negligence or otherwise) arising in any way out of
|
||||
the use of this software, even if advised of the possibility of such damage.
|
||||
@@ -1,3 +1,45 @@
|
||||
/*M///////////////////////////////////////////////////////////////////////////////////////
|
||||
* //
|
||||
* // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
|
||||
* //
|
||||
* // By downloading, copying, installing or using the software you agree to this license.
|
||||
* // If you do not agree to this license, do not download, install,
|
||||
* // copy or use the software.
|
||||
* //
|
||||
* //
|
||||
* // License Agreement
|
||||
* // For Open Source Computer Vision Library
|
||||
* //
|
||||
* // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
|
||||
* // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
|
||||
* // Third party copyrights are property of their respective owners.
|
||||
* //
|
||||
* // Redistribution and use in source and binary forms, with or without modification,
|
||||
* // are permitted provided that the following conditions are met:
|
||||
* //
|
||||
* // * Redistribution's of source code must retain the above copyright notice,
|
||||
* // this list of conditions and the following disclaimer.
|
||||
* //
|
||||
* // * Redistribution's in binary form must reproduce the above copyright notice,
|
||||
* // this list of conditions and the following disclaimer in the documentation
|
||||
* // and/or other materials provided with the distribution.
|
||||
* //
|
||||
* // * The name of the copyright holders may not be used to endorse or promote products
|
||||
* // derived from this software without specific prior written permission.
|
||||
* //
|
||||
* // This software is provided by the copyright holders and contributors "as is" and
|
||||
* // any express or implied warranties, including, but not limited to, the implied
|
||||
* // warranties of merchantability and fitness for a particular purpose are disclaimed.
|
||||
* // In no event shall the Intel Corporation or contributors be liable for any direct,
|
||||
* // indirect, incidental, special, exemplary, or consequential damages
|
||||
* // (including, but not limited to, procurement of substitute goods or services;
|
||||
* // loss of use, data, or profits; or business interruption) however caused
|
||||
* // and on any theory of liability, whether in contract, strict liability,
|
||||
* // or tort (including negligence or otherwise) arising in any way out of
|
||||
* // the use of this software, even if advised of the possibility of such damage.
|
||||
* //
|
||||
* //M*/
|
||||
|
||||
#ifndef __OPENCV_OLD_CXMISC_H__
|
||||
#define __OPENCV_OLD_CXMISC_H__
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@ struct CvCBQuad
|
||||
//static CvMat* debug_img = 0;
|
||||
|
||||
static int icvGenerateQuads( CvCBQuad **quads, CvCBCorner **corners,
|
||||
CvMemStorage *storage, CvMat *image, int flags );
|
||||
CvMemStorage *storage, CvMat *image, int flags, int *max_quad_buf_size);
|
||||
|
||||
/*static int
|
||||
icvGenerateQuadsEx( CvCBQuad **out_quads, CvCBCorner **out_corners,
|
||||
@@ -172,7 +172,7 @@ static int icvCleanFoundConnectedQuads( int quad_count,
|
||||
|
||||
static int icvOrderFoundConnectedQuads( int quad_count, CvCBQuad **quads,
|
||||
int *all_count, CvCBQuad **all_quads, CvCBCorner **corners,
|
||||
CvSize pattern_size, CvMemStorage* storage );
|
||||
CvSize pattern_size, int max_quad_buf_size, CvMemStorage* storage );
|
||||
|
||||
static void icvOrderQuad(CvCBQuad *quad, CvCBCorner *corner, int common);
|
||||
|
||||
@@ -183,7 +183,7 @@ static int icvTrimRow(CvCBQuad **quads, int count, int row, int dir);
|
||||
#endif
|
||||
|
||||
static int icvAddOuterQuad(CvCBQuad *quad, CvCBQuad **quads, int quad_count,
|
||||
CvCBQuad **all_quads, int all_count, CvCBCorner **corners);
|
||||
CvCBQuad **all_quads, int all_count, CvCBCorner **corners, int max_quad_buf_size);
|
||||
|
||||
static void icvRemoveQuadFromGroup(CvCBQuad **quads, int count, CvCBQuad *q0);
|
||||
|
||||
@@ -313,6 +313,7 @@ int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
|
||||
// making it difficult to detect smaller squares.
|
||||
for( k = 0; k < 6; k++ )
|
||||
{
|
||||
int max_quad_buf_size = 0;
|
||||
for( dilations = min_dilations; dilations <= max_dilations; dilations++ )
|
||||
{
|
||||
if (found)
|
||||
@@ -368,7 +369,7 @@ int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
|
||||
cvRectangle( thresh_img, cvPoint(0,0), cvPoint(thresh_img->cols-1,
|
||||
thresh_img->rows-1), CV_RGB(255,255,255), 3, 8);
|
||||
|
||||
quad_count = icvGenerateQuads( &quads, &corners, storage, thresh_img, flags );
|
||||
quad_count = icvGenerateQuads( &quads, &corners, storage, thresh_img, flags, &max_quad_buf_size);
|
||||
|
||||
PRINTF("Quad count: %d/%d\n", quad_count, expected_corners_num);
|
||||
}
|
||||
@@ -408,8 +409,8 @@ int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
|
||||
// allocate extra for adding in icvOrderFoundQuads
|
||||
cvFree(&quad_group);
|
||||
cvFree(&corner_group);
|
||||
quad_group = (CvCBQuad**)cvAlloc( sizeof(quad_group[0]) * (quad_count+quad_count / 2));
|
||||
corner_group = (CvCBCorner**)cvAlloc( sizeof(corner_group[0]) * (quad_count+quad_count / 2)*4 );
|
||||
quad_group = (CvCBQuad**)cvAlloc( sizeof(quad_group[0]) * max_quad_buf_size);
|
||||
corner_group = (CvCBCorner**)cvAlloc( sizeof(corner_group[0]) * max_quad_buf_size * 4 );
|
||||
|
||||
for( group_idx = 0; ; group_idx++ )
|
||||
{
|
||||
@@ -424,7 +425,7 @@ int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
|
||||
// maybe delete or add some
|
||||
PRINTF("Starting ordering of inner quads\n");
|
||||
count = icvOrderFoundConnectedQuads(count, quad_group, &quad_count, &quads, &corners,
|
||||
pattern_size, storage );
|
||||
pattern_size, max_quad_buf_size, storage );
|
||||
PRINTF("Orig count: %d After ordering: %d\n", icount, count);
|
||||
|
||||
|
||||
@@ -623,7 +624,7 @@ icvCheckBoardMonotony( CvPoint2D32f* corners, CvSize pattern_size )
|
||||
static int
|
||||
icvOrderFoundConnectedQuads( int quad_count, CvCBQuad **quads,
|
||||
int *all_count, CvCBQuad **all_quads, CvCBCorner **corners,
|
||||
CvSize pattern_size, CvMemStorage* storage )
|
||||
CvSize pattern_size, int max_quad_buf_size, CvMemStorage* storage )
|
||||
{
|
||||
cv::Ptr<CvMemStorage> temp_storage = cvCreateChildMemStorage( storage );
|
||||
CvSeq* stack = cvCreateSeq( 0, sizeof(*stack), sizeof(void*), temp_storage );
|
||||
@@ -803,15 +804,18 @@ icvOrderFoundConnectedQuads( int quad_count, CvCBQuad **quads,
|
||||
if (found > 0)
|
||||
{
|
||||
PRINTF("Found %d inner quads not connected to outer quads, repairing\n", found);
|
||||
for (int i=0; i<quad_count; i++)
|
||||
for (int i=0; i<quad_count && *all_count < max_quad_buf_size; i++)
|
||||
{
|
||||
if (quads[i]->count < 4 && quads[i]->ordered)
|
||||
{
|
||||
int added = icvAddOuterQuad(quads[i],quads,quad_count,all_quads,*all_count,corners);
|
||||
int added = icvAddOuterQuad(quads[i],quads,quad_count,all_quads,*all_count,corners, max_quad_buf_size);
|
||||
*all_count += added;
|
||||
quad_count += added;
|
||||
}
|
||||
}
|
||||
|
||||
if (*all_count >= max_quad_buf_size)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -854,11 +858,11 @@ icvOrderFoundConnectedQuads( int quad_count, CvCBQuad **quads,
|
||||
|
||||
static int
|
||||
icvAddOuterQuad( CvCBQuad *quad, CvCBQuad **quads, int quad_count,
|
||||
CvCBQuad **all_quads, int all_count, CvCBCorner **corners )
|
||||
CvCBQuad **all_quads, int all_count, CvCBCorner **corners, int max_quad_buf_size )
|
||||
|
||||
{
|
||||
int added = 0;
|
||||
for (int i=0; i<4; i++) // find no-neighbor corners
|
||||
for (int i=0; i<4 && all_count < max_quad_buf_size; i++) // find no-neighbor corners
|
||||
{
|
||||
if (!quad->neighbors[i]) // ok, create and add neighbor
|
||||
{
|
||||
@@ -1649,7 +1653,7 @@ static void icvFindQuadNeighbors( CvCBQuad *quads, int quad_count )
|
||||
|
||||
static int
|
||||
icvGenerateQuads( CvCBQuad **out_quads, CvCBCorner **out_corners,
|
||||
CvMemStorage *storage, CvMat *image, int flags )
|
||||
CvMemStorage *storage, CvMat *image, int flags, int *max_quad_buf_size )
|
||||
{
|
||||
int quad_count = 0;
|
||||
cv::Ptr<CvMemStorage> temp_storage;
|
||||
@@ -1754,8 +1758,9 @@ icvGenerateQuads( CvCBQuad **out_quads, CvCBCorner **out_corners,
|
||||
cvEndFindContours( &scanner );
|
||||
|
||||
// allocate quad & corner buffers
|
||||
*out_quads = (CvCBQuad*)cvAlloc((root->total+root->total / 2) * sizeof((*out_quads)[0]));
|
||||
*out_corners = (CvCBCorner*)cvAlloc((root->total+root->total / 2) * 4 * sizeof((*out_corners)[0]));
|
||||
*max_quad_buf_size = MAX(1, (root->total+root->total / 2)) * 2;
|
||||
*out_quads = (CvCBQuad*)cvAlloc(*max_quad_buf_size * sizeof((*out_quads)[0]));
|
||||
*out_corners = (CvCBCorner*)cvAlloc(*max_quad_buf_size * 4 * sizeof((*out_corners)[0]));
|
||||
|
||||
// Create array of quads structures
|
||||
for( idx = 0; idx < root->total; idx++ )
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
//
|
||||
// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
|
||||
// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
|
||||
// Copyright (C) 2015, Itseez Inc., all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
@@ -562,6 +563,9 @@ void CV_HomographyTest::run(int)
|
||||
default: continue;
|
||||
}
|
||||
}
|
||||
|
||||
delete[]src_data;
|
||||
src_data = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,32 @@
|
||||
/***********************************************************************
|
||||
* Software License Agreement (BSD License)
|
||||
*
|
||||
* Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
|
||||
* Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
|
||||
*
|
||||
* THE BSD LICENSE
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*************************************************************************/
|
||||
|
||||
#ifndef OPENCV_FLANN_DUMMY_H_
|
||||
#define OPENCV_FLANN_DUMMY_H_
|
||||
|
||||
@@ -64,7 +64,7 @@ set(highgui_srcs
|
||||
src/window.cpp
|
||||
)
|
||||
|
||||
file(GLOB highgui_ext_hdrs "include/opencv2/${name}/*.hpp" "include/opencv2/${name}/*.h")
|
||||
file(GLOB highgui_ext_hdrs "include/opencv2/*.hpp" "include/opencv2/${name}/*.hpp" "include/opencv2/${name}/*.h")
|
||||
|
||||
if(HAVE_QT5)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
@@ -238,10 +238,12 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GSTREAMER
|
||||
capture = cvCreateCapture_GStreamer(CV_CAP_GSTREAMER_V4L2, 0);
|
||||
capture = cvCreateCapture_GStreamer(CV_CAP_GSTREAMER_V4L2,
|
||||
reinterpret_cast<char *>(index));
|
||||
if (capture)
|
||||
return capture;
|
||||
capture = cvCreateCapture_GStreamer(CV_CAP_GSTREAMER_V4L, 0);
|
||||
capture = cvCreateCapture_GStreamer(CV_CAP_GSTREAMER_V4L,
|
||||
reinterpret_cast<char *>(index));
|
||||
if (capture)
|
||||
return capture;
|
||||
#endif
|
||||
|
||||
@@ -75,10 +75,13 @@
|
||||
|
||||
#if GST_VERSION_MAJOR == 0
|
||||
#define COLOR_ELEM "ffmpegcolorspace"
|
||||
#define COLOR_ELEM_NAME "ffmpegcsp"
|
||||
#elif FULL_GST_VERSION < VERSION_NUM(1,5,0)
|
||||
#define COLOR_ELEM "videoconvert"
|
||||
#define COLOR_ELEM_NAME COLOR_ELEM
|
||||
#else
|
||||
#define COLOR_ELEM "autovideoconvert"
|
||||
#define COLOR_ELEM_NAME COLOR_ELEM
|
||||
#endif
|
||||
|
||||
void toFraction(double decimal, double &numerator, double &denominator);
|
||||
@@ -142,6 +145,7 @@ protected:
|
||||
gpointer data);
|
||||
GstElement* pipeline;
|
||||
GstElement* uridecodebin;
|
||||
GstElement* v4l2src;
|
||||
GstElement* color;
|
||||
GstElement* sink;
|
||||
#if GST_VERSION_MAJOR > 0
|
||||
@@ -165,6 +169,7 @@ void CvCapture_GStreamer::init()
|
||||
{
|
||||
pipeline = NULL;
|
||||
uridecodebin = NULL;
|
||||
v4l2src = NULL;
|
||||
color = NULL;
|
||||
sink = NULL;
|
||||
#if GST_VERSION_MAJOR > 0
|
||||
@@ -371,9 +376,7 @@ void CvCapture_GStreamer::startPipeline()
|
||||
if (status == GST_STATE_CHANGE_ASYNC)
|
||||
{
|
||||
// wait for status update
|
||||
GstState st1;
|
||||
GstState st2;
|
||||
status = gst_element_get_state(pipeline, &st1, &st2, GST_CLOCK_TIME_NONE);
|
||||
status = gst_element_get_state(pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
|
||||
}
|
||||
if (status == GST_STATE_CHANGE_FAILURE)
|
||||
{
|
||||
@@ -568,21 +571,39 @@ bool CvCapture_GStreamer::open( int type, const char* filename )
|
||||
GstElementFactory * testfac;
|
||||
GstStateChangeReturn status;
|
||||
|
||||
if (type == CV_CAP_GSTREAMER_V4L){
|
||||
int cameraID = -1;
|
||||
if (type == CV_CAP_GSTREAMER_V4L ||
|
||||
type == CV_CAP_GSTREAMER_V4L2)
|
||||
{
|
||||
cameraID = static_cast<int>(reinterpret_cast<intptr_t>(filename));
|
||||
}
|
||||
|
||||
std::stringstream stdstream;
|
||||
std::string stdfilename;
|
||||
|
||||
if (type == CV_CAP_GSTREAMER_V4L)
|
||||
{
|
||||
testfac = gst_element_factory_find("v4lsrc");
|
||||
if (!testfac){
|
||||
return false;
|
||||
}
|
||||
g_object_unref(G_OBJECT(testfac));
|
||||
filename = "v4lsrc ! "COLOR_ELEM" ! appsink";
|
||||
|
||||
stdstream << "v4lsrc device=/dev/video" << cameraID << " ! " << COLOR_ELEM << " ! appsink";
|
||||
stdfilename = stdstream.str();
|
||||
filename = stdfilename.c_str();
|
||||
}
|
||||
if (type == CV_CAP_GSTREAMER_V4L2){
|
||||
else if (type == CV_CAP_GSTREAMER_V4L2)
|
||||
{
|
||||
testfac = gst_element_factory_find("v4l2src");
|
||||
if (!testfac){
|
||||
return false;
|
||||
}
|
||||
g_object_unref(G_OBJECT(testfac));
|
||||
filename = "v4l2src ! "COLOR_ELEM" ! appsink";
|
||||
|
||||
stdstream << "v4l2src device=/dev/video" << cameraID << " ! " << COLOR_ELEM << " ! appsink";
|
||||
stdfilename = stdstream.str();
|
||||
filename = stdfilename.c_str();
|
||||
}
|
||||
|
||||
|
||||
@@ -620,7 +641,9 @@ bool CvCapture_GStreamer::open( int type, const char* filename )
|
||||
stream = true;
|
||||
manualpipeline = true;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
stream = true;
|
||||
uri = g_strdup(filename);
|
||||
}
|
||||
@@ -641,68 +664,86 @@ bool CvCapture_GStreamer::open( int type, const char* filename )
|
||||
uridecodebin = gst_element_make_from_uri(GST_URI_SRC, uri, "src", NULL);
|
||||
#endif
|
||||
element_from_uri = true;
|
||||
}else{
|
||||
}
|
||||
else
|
||||
{
|
||||
uridecodebin = gst_element_factory_make("uridecodebin", NULL);
|
||||
g_object_set(G_OBJECT(uridecodebin), "uri", uri, NULL);
|
||||
}
|
||||
g_free(protocol);
|
||||
|
||||
if(!uridecodebin) {
|
||||
if(!uridecodebin)
|
||||
{
|
||||
//fprintf(stderr, "GStreamer: Error opening bin: %s\n", err->message);
|
||||
close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(manualpipeline)
|
||||
if (manualpipeline)
|
||||
{
|
||||
GstIterator *it = NULL;
|
||||
#if GST_VERSION_MAJOR == 0
|
||||
it = gst_bin_iterate_sinks(GST_BIN(uridecodebin));
|
||||
if(gst_iterator_next(it, (gpointer *)&sink) != GST_ITERATOR_OK) {
|
||||
CV_ERROR(CV_StsError, "GStreamer: cannot find appsink in manual pipeline\n");
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
it = gst_bin_iterate_sinks (GST_BIN(uridecodebin));
|
||||
GstIterator *it = gst_bin_iterate_elements(GST_BIN(uridecodebin));
|
||||
|
||||
gboolean done = FALSE;
|
||||
GstElement *element = NULL;
|
||||
gboolean done = false;
|
||||
gchar* name = NULL;
|
||||
#if GST_VERSION_MAJOR > 0
|
||||
GValue value = G_VALUE_INIT;
|
||||
#endif
|
||||
|
||||
while (!done) {
|
||||
switch (gst_iterator_next (it, &value)) {
|
||||
while (!done)
|
||||
{
|
||||
#if GST_VERSION_MAJOR > 0
|
||||
switch (gst_iterator_next (it, &value))
|
||||
{
|
||||
case GST_ITERATOR_OK:
|
||||
element = GST_ELEMENT (g_value_get_object (&value));
|
||||
name = gst_element_get_name(element);
|
||||
if (name){
|
||||
if(strstr(name, "opencvsink") != NULL || strstr(name, "appsink") != NULL) {
|
||||
sink = GST_ELEMENT ( gst_object_ref (element) );
|
||||
done = TRUE;
|
||||
}
|
||||
g_free(name);
|
||||
}
|
||||
g_value_unset (&value);
|
||||
element = GST_ELEMENT (g_value_get_object (&value));
|
||||
#else
|
||||
switch (gst_iterator_next (it, (gpointer *)&element))
|
||||
{
|
||||
case GST_ITERATOR_OK:
|
||||
#endif
|
||||
name = gst_element_get_name(element);
|
||||
if (name)
|
||||
{
|
||||
if (strstr(name, "opencvsink") != NULL || strstr(name, "appsink") != NULL)
|
||||
{
|
||||
sink = GST_ELEMENT ( gst_object_ref (element) );
|
||||
}
|
||||
else if (strstr(name, COLOR_ELEM_NAME) != NULL)
|
||||
{
|
||||
color = GST_ELEMENT ( gst_object_ref (element) );
|
||||
}
|
||||
else if (strstr(name, "v4l") != NULL)
|
||||
{
|
||||
v4l2src = GST_ELEMENT ( gst_object_ref (element) );
|
||||
}
|
||||
g_free(name);
|
||||
|
||||
break;
|
||||
done = sink && color && v4l2src;
|
||||
}
|
||||
#if GST_VERSION_MAJOR > 0
|
||||
g_value_unset (&value);
|
||||
#endif
|
||||
|
||||
break;
|
||||
case GST_ITERATOR_RESYNC:
|
||||
gst_iterator_resync (it);
|
||||
break;
|
||||
gst_iterator_resync (it);
|
||||
break;
|
||||
case GST_ITERATOR_ERROR:
|
||||
case GST_ITERATOR_DONE:
|
||||
done = TRUE;
|
||||
break;
|
||||
}
|
||||
done = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
gst_iterator_free (it);
|
||||
|
||||
|
||||
if (!sink){
|
||||
if (!sink)
|
||||
{
|
||||
CV_ERROR(CV_StsError, "GStreamer: cannot find appsink in manual pipeline\n");
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
pipeline = uridecodebin;
|
||||
}
|
||||
else
|
||||
@@ -715,18 +756,23 @@ bool CvCapture_GStreamer::open( int type, const char* filename )
|
||||
|
||||
gst_bin_add_many(GST_BIN(pipeline), uridecodebin, color, sink, NULL);
|
||||
|
||||
if(element_from_uri) {
|
||||
if(!gst_element_link(uridecodebin, color)) {
|
||||
if(element_from_uri)
|
||||
{
|
||||
if(!gst_element_link(uridecodebin, color))
|
||||
{
|
||||
CV_ERROR(CV_StsError, "GStreamer: cannot link color -> sink\n");
|
||||
gst_object_unref(pipeline);
|
||||
pipeline = NULL;
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
}
|
||||
else
|
||||
{
|
||||
g_signal_connect(uridecodebin, "pad-added", G_CALLBACK(newPad), color);
|
||||
}
|
||||
|
||||
if(!gst_element_link(color, sink)) {
|
||||
if(!gst_element_link(color, sink))
|
||||
{
|
||||
CV_ERROR(CV_StsError, "GStreamer: cannot link color -> sink\n");
|
||||
gst_object_unref(pipeline);
|
||||
pipeline = NULL;
|
||||
@@ -754,16 +800,13 @@ bool CvCapture_GStreamer::open( int type, const char* filename )
|
||||
gst_app_sink_set_caps(GST_APP_SINK(sink), caps);
|
||||
gst_caps_unref(caps);
|
||||
|
||||
// For video files only: set pipeline to PAUSED state to get its duration
|
||||
if (file)
|
||||
{
|
||||
status = gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PAUSED);
|
||||
status = gst_element_set_state(GST_ELEMENT(pipeline),
|
||||
file ? GST_STATE_PAUSED : GST_STATE_PLAYING);
|
||||
if (status == GST_STATE_CHANGE_ASYNC)
|
||||
{
|
||||
// wait for status update
|
||||
GstState st1;
|
||||
GstState st2;
|
||||
status = gst_element_get_state(pipeline, &st1, &st2, GST_CLOCK_TIME_NONE);
|
||||
status = gst_element_get_state(pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
|
||||
}
|
||||
if (status == GST_STATE_CHANGE_FAILURE)
|
||||
{
|
||||
@@ -814,14 +857,9 @@ bool CvCapture_GStreamer::open( int type, const char* filename )
|
||||
|
||||
fps = (double)num/(double)denom;
|
||||
|
||||
// GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "pipeline");
|
||||
}
|
||||
else
|
||||
{
|
||||
duration = -1;
|
||||
width = -1;
|
||||
height = -1;
|
||||
fps = -1;
|
||||
// GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "pipeline")
|
||||
|
||||
stopPipeline();
|
||||
}
|
||||
|
||||
__END__;
|
||||
@@ -852,7 +890,7 @@ double CvCapture_GStreamer::getProperty( int propId )
|
||||
|
||||
if(!pipeline) {
|
||||
CV_WARN("GStreamer: no pipeline");
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch(propId) {
|
||||
@@ -861,7 +899,7 @@ double CvCapture_GStreamer::getProperty( int propId )
|
||||
status = gst_element_query_position(sink, FORMAT, &value);
|
||||
if(!status) {
|
||||
CV_WARN("GStreamer: unable to query position of stream");
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
return value * 1e-6; // nano seconds to milli seconds
|
||||
case CV_CAP_PROP_POS_FRAMES:
|
||||
@@ -869,7 +907,7 @@ double CvCapture_GStreamer::getProperty( int propId )
|
||||
status = gst_element_query_position(sink, FORMAT, &value);
|
||||
if(!status) {
|
||||
CV_WARN("GStreamer: unable to query position of stream");
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
return value;
|
||||
case CV_CAP_PROP_POS_AVI_RATIO:
|
||||
@@ -877,7 +915,7 @@ double CvCapture_GStreamer::getProperty( int propId )
|
||||
status = gst_element_query_position(sink, FORMAT, &value);
|
||||
if(!status) {
|
||||
CV_WARN("GStreamer: unable to query position of stream");
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
return ((double) value) / GST_FORMAT_PERCENT_MAX;
|
||||
case CV_CAP_PROP_FRAME_WIDTH:
|
||||
@@ -896,6 +934,21 @@ double CvCapture_GStreamer::getProperty( int propId )
|
||||
case CV_CAP_PROP_CONTRAST:
|
||||
case CV_CAP_PROP_SATURATION:
|
||||
case CV_CAP_PROP_HUE:
|
||||
if (v4l2src)
|
||||
{
|
||||
const gchar * propName =
|
||||
propId == CV_CAP_PROP_BRIGHTNESS ? "brightness" :
|
||||
propId == CV_CAP_PROP_CONTRAST ? "contrast" :
|
||||
propId == CV_CAP_PROP_SATURATION ? "saturation" :
|
||||
propId == CV_CAP_PROP_HUE ? "hue" : NULL;
|
||||
|
||||
if (propName)
|
||||
{
|
||||
gint32 value32 = 0;
|
||||
g_object_get(G_OBJECT(v4l2src), propName, &value32, NULL);
|
||||
return value32;
|
||||
}
|
||||
}
|
||||
case CV_CAP_PROP_GAIN:
|
||||
case CV_CAP_PROP_CONVERT_RGB:
|
||||
break;
|
||||
@@ -912,7 +965,7 @@ double CvCapture_GStreamer::getProperty( int propId )
|
||||
|
||||
#undef FORMAT
|
||||
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -991,6 +1044,21 @@ bool CvCapture_GStreamer::setProperty( int propId, double value )
|
||||
case CV_CAP_PROP_CONTRAST:
|
||||
case CV_CAP_PROP_SATURATION:
|
||||
case CV_CAP_PROP_HUE:
|
||||
if (v4l2src)
|
||||
{
|
||||
const gchar * propName =
|
||||
propId == CV_CAP_PROP_BRIGHTNESS ? "brightness" :
|
||||
propId == CV_CAP_PROP_CONTRAST ? "contrast" :
|
||||
propId == CV_CAP_PROP_SATURATION ? "saturation" :
|
||||
propId == CV_CAP_PROP_HUE ? "hue" : NULL;
|
||||
|
||||
if (propName)
|
||||
{
|
||||
gint32 value32 = cv::saturate_cast<gint32>(value);
|
||||
g_object_set(G_OBJECT(v4l2src), propName, &value32, NULL);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
case CV_CAP_PROP_GAIN:
|
||||
case CV_CAP_PROP_CONVERT_RGB:
|
||||
break;
|
||||
|
||||
@@ -221,7 +221,12 @@ bool TiffDecoder::readData( Mat& img )
|
||||
(!is_tiled && tile_height0 == std::numeric_limits<uint32>::max()) )
|
||||
tile_height0 = m_height;
|
||||
|
||||
const size_t buffer_size = bpp * ncn * tile_height0 * tile_width0;
|
||||
if(dst_bpp == 8) {
|
||||
// we will use TIFFReadRGBA* functions, so allocate temporary buffer for 32bit RGBA
|
||||
bpp = 8;
|
||||
ncn = 4;
|
||||
}
|
||||
const size_t buffer_size = (bpp/bitsPerByte) * ncn * tile_height0 * tile_width0;
|
||||
AutoBuffer<uchar> _buffer( buffer_size );
|
||||
uchar* buffer = _buffer;
|
||||
ushort* buffer16 = (ushort*)buffer;
|
||||
|
||||
@@ -396,6 +396,10 @@ TEST(Highgui_Video_parallel_writers_and_readers, accuracy)
|
||||
if (code == 1)
|
||||
std::cerr << "Couldn't delete " << *i << std::endl;
|
||||
}
|
||||
|
||||
// delete the readers
|
||||
for (std::vector<VideoCapture *>::iterator i = readers.begin(), end = readers.end(); i != end; ++i)
|
||||
delete *i;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -22,7 +22,9 @@ class NewOpenCVTests(unittest.TestCase):
|
||||
def get_sample(self, filename, iscolor = cv.CV_LOAD_IMAGE_COLOR):
|
||||
if not filename in self.image_cache:
|
||||
filedata = urllib.urlopen("https://raw.github.com/Itseez/opencv/2.4/" + filename).read()
|
||||
self.image_cache[filename] = cv2.imdecode(np.fromstring(filedata, dtype=np.uint8), iscolor)
|
||||
image = cv2.imdecode(np.fromstring(filedata, dtype=np.uint8), iscolor)
|
||||
self.assertFalse(image is None)
|
||||
self.image_cache[filename] = image
|
||||
return self.image_cache[filename]
|
||||
|
||||
def setUp(self):
|
||||
|
||||
@@ -22,7 +22,7 @@ endif()
|
||||
if(INSTALL_C_EXAMPLES)
|
||||
install(FILES "CMakeLists.txt"
|
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}
|
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples)
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ COMPONENT samples)
|
||||
endif()
|
||||
|
||||
if(INSTALL_PYTHON_EXAMPLES)
|
||||
@@ -68,8 +68,14 @@ endif()
|
||||
|
||||
add_subdirectory(c)
|
||||
add_subdirectory(cpp)
|
||||
add_subdirectory(ocl)
|
||||
add_subdirectory(gpu)
|
||||
ocv_check_dependencies(opencv_ocl)
|
||||
if (OCV_DEPENDENCIES_FOUND)
|
||||
add_subdirectory(ocl)
|
||||
endif()
|
||||
ocv_check_dependencies(opencv_gpu)
|
||||
if (OCV_DEPENDENCIES_FOUND)
|
||||
add_subdirectory(gpu)
|
||||
endif()
|
||||
|
||||
#
|
||||
# END OF BUILD CASE 2: Build samples with library binaries
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
SET(OPENCV_C_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc
|
||||
opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_photo opencv_nonfree
|
||||
opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_photo
|
||||
opencv_features2d opencv_calib3d opencv_legacy opencv_contrib)
|
||||
|
||||
ocv_check_dependencies(${OPENCV_C_SAMPLES_REQUIRED_DEPS})
|
||||
@@ -16,7 +16,7 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
|
||||
endif()
|
||||
|
||||
ocv_include_modules(${OPENCV_C_SAMPLES_REQUIRED_DEPS})
|
||||
ocv_include_modules(${OPENCV_C_SAMPLES_REQUIRED_DEPS} opencv_nonfree)
|
||||
|
||||
# ---------------------------------------------
|
||||
# Define executable targets
|
||||
@@ -52,8 +52,9 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
|
||||
endif()
|
||||
|
||||
if (OCV_DEPENDENCIES_FOUND AND INSTALL_C_EXAMPLES AND NOT WIN32)
|
||||
file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd *.txt)
|
||||
file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* *.cmd *.txt)
|
||||
install(FILES ${C_SAMPLES}
|
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/c
|
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples)
|
||||
DESTINATION "${OPENCV_SAMPLES_SRC_INSTALL_PATH}/c"
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ COMPONENT samples)
|
||||
install(PROGRAMS build_all.sh DESTINATION "${OPENCV_SAMPLES_SRC_INSTALL_PATH}/c" COMPONENT samples)
|
||||
endif ()
|
||||
|
||||
+24
-10
@@ -4,19 +4,31 @@
|
||||
* Author: Liu Liu
|
||||
* liuliu.1987+opencv@gmail.com
|
||||
*/
|
||||
#include "opencv2/objdetect/objdetect.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/calib3d/calib3d.hpp"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
#include "opencv2/imgproc/imgproc_c.h"
|
||||
#include "opencv2/legacy/legacy.hpp"
|
||||
#include "opencv2/legacy/compat.hpp"
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <stdio.h>
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
printf("The sample requires nonfree module that is not available in your OpenCV distribution.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/objdetect/objdetect.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/calib3d/calib3d.hpp"
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
# include "opencv2/imgproc/imgproc_c.h"
|
||||
# include "opencv2/legacy/legacy.hpp"
|
||||
# include "opencv2/legacy/compat.hpp"
|
||||
|
||||
# include <vector>
|
||||
|
||||
using namespace std;
|
||||
static void help()
|
||||
{
|
||||
@@ -320,3 +332,5 @@ int main(int argc, char** argv)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,25 @@
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/core/core.hpp"
|
||||
#include "opencv2/imgproc/imgproc.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
#include "opencv2/legacy/legacy.hpp"
|
||||
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
std::cout << "The sample requires nonfree module that is not available in your OpenCV distribution." << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/core/core.hpp"
|
||||
# include "opencv2/imgproc/imgproc.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
# include "opencv2/legacy/legacy.hpp"
|
||||
|
||||
# include <iostream>
|
||||
# include <fstream>
|
||||
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
@@ -164,3 +177,5 @@ int main( int argc, char **argv )
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -7,16 +7,28 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "opencv2/imgproc/imgproc.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/imgproc/imgproc_c.h"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
#include "opencv2/legacy/legacy.hpp"
|
||||
#include "opencv2/legacy/compat.hpp"
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <stdio.h>
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
printf("The sample requires nonfree module that is not available in your OpenCV distribution.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/imgproc/imgproc.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/imgproc/imgproc_c.h"
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
# include "opencv2/legacy/legacy.hpp"
|
||||
# include "opencv2/legacy/compat.hpp"
|
||||
|
||||
#include <string>
|
||||
#include <stdio.h>
|
||||
|
||||
static void help()
|
||||
{
|
||||
@@ -116,3 +128,5 @@ Mat DrawCorrespondences(const Mat& img1, const vector<KeyPoint>& features1, cons
|
||||
|
||||
return img_corr;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -4,8 +4,9 @@
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
SET(OPENCV_CPP_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc
|
||||
opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_photo opencv_nonfree
|
||||
opencv_features2d opencv_calib3d opencv_legacy opencv_contrib opencv_stitching opencv_videostab)
|
||||
opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_photo
|
||||
opencv_features2d opencv_calib3d opencv_legacy opencv_contrib
|
||||
opencv_stitching opencv_videostab)
|
||||
|
||||
ocv_check_dependencies(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS})
|
||||
|
||||
@@ -14,7 +15,7 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
|
||||
project(cpp_samples)
|
||||
|
||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/include")#for opencv.hpp
|
||||
ocv_include_modules(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS})
|
||||
ocv_include_modules(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS} opencv_nonfree)
|
||||
|
||||
if(HAVE_opencv_gpu)
|
||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include")
|
||||
@@ -93,6 +94,6 @@ endif()
|
||||
if (OCV_DEPENDENCIES_FOUND AND INSTALL_C_EXAMPLES AND NOT WIN32)
|
||||
file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd *.txt)
|
||||
install(FILES ${C_SAMPLES}
|
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/cpp
|
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples)
|
||||
DESTINATION "${OPENCV_SAMPLES_SRC_INSTALL_PATH}/cpp"
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ COMPONENT samples)
|
||||
endif()
|
||||
|
||||
@@ -1,29 +1,41 @@
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/imgproc/imgproc.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
#include "opencv2/ml/ml.hpp"
|
||||
#ifdef HAVE_OPENCV_OCL
|
||||
#define _OCL_SVM_ 1 //select whether using ocl::svm method or not, default is using
|
||||
#include "opencv2/ocl/ocl.hpp"
|
||||
#endif
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <functional>
|
||||
|
||||
#if defined WIN32 || defined _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#undef min
|
||||
#undef max
|
||||
#include "sys/types.h"
|
||||
#endif
|
||||
#include <sys/stat.h>
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
#define DEBUG_DESC_PROGRESS
|
||||
int main(int, char**)
|
||||
{
|
||||
std::cout << "The sample requires nonfree module that is not available in your OpenCV distribution." << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/imgproc/imgproc.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
# include "opencv2/ml/ml.hpp"
|
||||
# ifdef HAVE_OPENCV_OCL
|
||||
# define _OCL_SVM_ 1 //select whether using ocl::svm method or not, default is using
|
||||
# include "opencv2/ocl/ocl.hpp"
|
||||
# endif
|
||||
|
||||
# include <fstream>
|
||||
# include <memory>
|
||||
# include <functional>
|
||||
|
||||
|
||||
# if defined WIN32 || defined _WIN32
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# include <windows.h>
|
||||
# undef min
|
||||
# undef max
|
||||
# include "sys/types.h"
|
||||
# endif
|
||||
# include <sys/stat.h>
|
||||
|
||||
# define DEBUG_DESC_PROGRESS
|
||||
|
||||
using namespace cv;
|
||||
using namespace std;
|
||||
@@ -2623,3 +2635,5 @@ int main(int argc, char** argv)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/calib3d/calib3d.hpp"
|
||||
#include "opencv2/imgproc/imgproc.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
#ifdef HAVE_OPENCV_NONFREE
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
@@ -17,14 +20,14 @@ static void help(char** argv)
|
||||
<< "Case1: second image is obtained from the first (given) image using random generated homography matrix\n"
|
||||
<< argv[0] << " [detectorType] [descriptorType] [matcherType] [matcherFilterType] [image] [evaluate(0 or 1)]\n"
|
||||
<< "Example of case1:\n"
|
||||
<< "./descriptor_extractor_matcher SURF SURF FlannBased NoneFilter cola.jpg 0\n"
|
||||
<< "./descriptor_extractor_matcher ORB ORB FlannBased NoneFilter cola.jpg 0\n"
|
||||
<< "\n"
|
||||
<< "Case2: both images are given. If ransacReprojThreshold>=0 then homography matrix are calculated\n"
|
||||
<< argv[0] << " [detectorType] [descriptorType] [matcherType] [matcherFilterType] [image1] [image2] [ransacReprojThreshold]\n"
|
||||
<< "\n"
|
||||
<< "Matches are filtered using homography matrix in case1 and case2 (if ransacReprojThreshold>=0)\n"
|
||||
<< "Example of case2:\n"
|
||||
<< "./descriptor_extractor_matcher SURF SURF BruteForce CrossCheckFilter cola1.jpg cola2.jpg 3\n"
|
||||
<< "./descriptor_extractor_matcher ORB ORB BruteForce CrossCheckFilter cola1.jpg cola2.jpg 3\n"
|
||||
<< "\n"
|
||||
<< "Possible detectorType values: see in documentation on createFeatureDetector().\n"
|
||||
<< "Possible descriptorType values: see in documentation on createDescriptorExtractor().\n"
|
||||
@@ -239,7 +242,11 @@ int main(int argc, char** argv)
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef HAVE_OPENCV_NONFREE
|
||||
cv::initModule_nonfree();
|
||||
#else
|
||||
cout << "Warning: OpenCV is built without nonfree support SIFT, SURF and some other algorithms are not available." << endl;
|
||||
#endif
|
||||
|
||||
bool isWarpPerspective = argc == 7;
|
||||
double ransacReprojThreshold = -1;
|
||||
|
||||
@@ -49,9 +49,21 @@
|
||||
//
|
||||
//M*/
|
||||
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <iostream>
|
||||
|
||||
#include "opencv2/opencv.hpp"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
std::cout << "The sample requires nonfree module that is not available in your OpenCV distribution." << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/opencv.hpp"
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
|
||||
using namespace cv;
|
||||
using namespace std;
|
||||
@@ -212,3 +224,5 @@ int main(int argc, char * argv[]) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -34,15 +34,27 @@
|
||||
// or tort (including negligence or otherwise) arising in any way out of
|
||||
// the use of this software, even if advised of the possibility of such damage.
|
||||
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <opencv2/core/core.hpp>
|
||||
#include <opencv2/highgui/highgui.hpp>
|
||||
#include <opencv2/features2d/features2d.hpp>
|
||||
#include <opencv2/nonfree/features2d.hpp>
|
||||
#include <opencv2/legacy/legacy.hpp>
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
std::cout << "The sample requires nonfree module that is not available in your OpenCV distribution." << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include <string>
|
||||
# include <vector>
|
||||
|
||||
# include <opencv2/core/core.hpp>
|
||||
# include <opencv2/highgui/highgui.hpp>
|
||||
# include <opencv2/features2d/features2d.hpp>
|
||||
# include <opencv2/nonfree/features2d.hpp>
|
||||
# include <opencv2/legacy/legacy.hpp>
|
||||
|
||||
using namespace cv;
|
||||
|
||||
@@ -126,3 +138,5 @@ int main( int argc, char** argv ) {
|
||||
imshow("matches", imgMatch);
|
||||
waitKey(0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,11 +1,23 @@
|
||||
#include "opencv2/calib3d/calib3d.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/imgproc/imgproc.hpp"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <cstdio>
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
printf("The sample requires nonfree module that is not available in your OpenCV distribution.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/opencv_modules.hpp"
|
||||
# include "opencv2/calib3d/calib3d.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/imgproc/imgproc.hpp"
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
|
||||
using namespace cv;
|
||||
|
||||
static void help()
|
||||
@@ -91,3 +103,5 @@ Mat DrawCorrespondences(const Mat& img1, const vector<KeyPoint>& features1, cons
|
||||
|
||||
return img_corr;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,8 +1,20 @@
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <stdio.h>
|
||||
#include "opencv2/core/core.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
printf("The sample requires nonfree module that is not available in your OpenCV distribution.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/core/core.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
|
||||
using namespace cv;
|
||||
|
||||
@@ -56,3 +68,5 @@ int main(int argc, char** argv)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -4,12 +4,23 @@
|
||||
* @author A. Huaman
|
||||
*/
|
||||
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
#include "opencv2/core/core.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/nonfree/features2d.hpp"
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
printf("The sample requires nonfree module that is not available in your OpenCV distribution.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/core/core.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/nonfree/features2d.hpp"
|
||||
|
||||
using namespace cv;
|
||||
|
||||
@@ -28,7 +39,7 @@ int main( int argc, char** argv )
|
||||
Mat img_2 = imread( argv[2], CV_LOAD_IMAGE_GRAYSCALE );
|
||||
|
||||
if( !img_1.data || !img_2.data )
|
||||
{ std::cout<< " --(!) Error reading images " << std::endl; return -1; }
|
||||
{ printf(" --(!) Error reading images \n"); return -1; }
|
||||
|
||||
//-- Step 1: Detect the keypoints using SURF Detector
|
||||
int minHessian = 400;
|
||||
@@ -97,4 +108,6 @@ int main( int argc, char** argv )
|
||||
* @function readme
|
||||
*/
|
||||
void readme()
|
||||
{ std::cout << " Usage: ./SURF_FlannMatcher <img1> <img2>" << std::endl; }
|
||||
{ printf(" Usage: ./SURF_FlannMatcher <img1> <img2>\n"); }
|
||||
|
||||
#endif
|
||||
@@ -4,13 +4,24 @@
|
||||
* @author A. Huaman
|
||||
*/
|
||||
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
#include "opencv2/core/core.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/calib3d/calib3d.hpp"
|
||||
#include "opencv2/nonfree/features2d.hpp"
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
printf("The sample requires nonfree module that is not available in your OpenCV distribution.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/core/core.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/calib3d/calib3d.hpp"
|
||||
# include "opencv2/nonfree/features2d.hpp"
|
||||
|
||||
using namespace cv;
|
||||
|
||||
@@ -29,7 +40,7 @@ int main( int argc, char** argv )
|
||||
Mat img_scene = imread( argv[2], CV_LOAD_IMAGE_GRAYSCALE );
|
||||
|
||||
if( !img_object.data || !img_scene.data )
|
||||
{ std::cout<< " --(!) Error reading images " << std::endl; return -1; }
|
||||
{ printf(" --(!) Error reading images \n"); return -1; }
|
||||
|
||||
//-- Step 1: Detect the keypoints using SURF Detector
|
||||
int minHessian = 400;
|
||||
@@ -121,4 +132,6 @@ int main( int argc, char** argv )
|
||||
* @function readme
|
||||
*/
|
||||
void readme()
|
||||
{ std::cout << " Usage: ./SURF_Homography <img1> <img2>" << std::endl; }
|
||||
{ printf(" Usage: ./SURF_Homography <img1> <img2>\n"); }
|
||||
|
||||
#endif
|
||||
@@ -4,12 +4,23 @@
|
||||
* @author A. Huaman
|
||||
*/
|
||||
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
#include "opencv2/core/core.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/nonfree/features2d.hpp"
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
printf("The sample requires nonfree module that is not available in your OpenCV distribution.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/core/core.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/nonfree/features2d.hpp"
|
||||
|
||||
using namespace cv;
|
||||
|
||||
@@ -69,4 +80,6 @@ int main( int argc, char** argv )
|
||||
* @function readme
|
||||
*/
|
||||
void readme()
|
||||
{ std::cout << " Usage: ./SURF_descriptor <img1> <img2>" << std::endl; }
|
||||
{ printf(" Usage: ./SURF_descriptor <img1> <img2>\n"); }
|
||||
|
||||
#endif
|
||||
@@ -4,12 +4,23 @@
|
||||
* @author A. Huaman
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <iostream>
|
||||
#include "opencv2/core/core.hpp"
|
||||
#include "opencv2/features2d/features2d.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/nonfree/features2d.hpp"
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
std::cout << "The sample requires nonfree module that is not available in your OpenCV distribution." << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/core/core.hpp"
|
||||
# include "opencv2/features2d/features2d.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/nonfree/features2d.hpp"
|
||||
|
||||
using namespace cv;
|
||||
|
||||
@@ -60,3 +71,5 @@ int main( int argc, char** argv )
|
||||
*/
|
||||
void readme()
|
||||
{ std::cout << " Usage: ./SURF_detector <img1> <img2>" << std::endl; }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -112,6 +112,6 @@ if (OCV_DEPENDENCIES_FOUND AND INSTALL_C_EXAMPLES AND NOT WIN32)
|
||||
list_filterout(install_list ".*driver_api_stereo_multi.cpp")
|
||||
endif()
|
||||
install(FILES ${install_list}
|
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/gpu
|
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples)
|
||||
DESTINATION "${OPENCV_SAMPLES_SRC_INSTALL_PATH}/gpu"
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ COMPONENT samples)
|
||||
endif()
|
||||
|
||||
@@ -29,7 +29,7 @@ endif()
|
||||
if(INSTALL_C_EXAMPLES AND NOT WIN32)
|
||||
file(GLOB GPU_FILES performance/*.cpp performance/*.h performance/CMakeLists.txt)
|
||||
install(FILES ${GPU_FILES}
|
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/gpu/performance
|
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
|
||||
DESTINATION "${OPENCV_SAMPLES_SRC_INSTALL_PATH}/gpu/performance"
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||
COMPONENT samples)
|
||||
endif()
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
SET(OPENCV_OCL_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc opencv_highgui
|
||||
opencv_ml opencv_video opencv_objdetect opencv_features2d
|
||||
opencv_calib3d opencv_legacy opencv_contrib opencv_ocl
|
||||
opencv_nonfree)
|
||||
opencv_calib3d opencv_legacy opencv_contrib opencv_ocl)
|
||||
|
||||
ocv_check_dependencies(${OPENCV_OCL_SAMPLES_REQUIRED_DEPS})
|
||||
|
||||
@@ -11,7 +10,7 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
|
||||
|
||||
project("${project}_samples")
|
||||
|
||||
ocv_include_modules(${OPENCV_OCL_SAMPLES_REQUIRED_DEPS})
|
||||
ocv_include_modules(${OPENCV_OCL_SAMPLES_REQUIRED_DEPS} opencv_nonfree)
|
||||
|
||||
if(HAVE_OPENCL)
|
||||
ocv_include_directories(${OPENCL_INCLUDE_DIR})
|
||||
@@ -52,8 +51,8 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
|
||||
endif()
|
||||
|
||||
if (OCV_DEPENDENCIES_FOUND AND INSTALL_C_EXAMPLES AND NOT WIN32)
|
||||
file(GLOB install_list *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd *.txt)
|
||||
file(GLOB install_list *.c *.cpp *.jpg *.png *.data makefile.* *.txt)
|
||||
install(FILES ${install_list}
|
||||
DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/ocl
|
||||
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ COMPONENT samples)
|
||||
DESTINATION "${OPENCV_SAMPLES_SRC_INSTALL_PATH}/ocl"
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ COMPONENT samples)
|
||||
endif()
|
||||
|
||||
@@ -1,11 +1,22 @@
|
||||
#include "opencv2/opencv_modules.hpp"
|
||||
#include <iostream>
|
||||
#include <stdio.h>
|
||||
#include "opencv2/core/core.hpp"
|
||||
#include "opencv2/highgui/highgui.hpp"
|
||||
#include "opencv2/ocl/ocl.hpp"
|
||||
#include "opencv2/nonfree/ocl.hpp"
|
||||
#include "opencv2/calib3d/calib3d.hpp"
|
||||
#include "opencv2/nonfree/nonfree.hpp"
|
||||
|
||||
#ifndef HAVE_OPENCV_NONFREE
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
std::cout << "The sample requires nonfree module that is not available in your OpenCV distribution." << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
# include "opencv2/core/core.hpp"
|
||||
# include "opencv2/highgui/highgui.hpp"
|
||||
# include "opencv2/ocl/ocl.hpp"
|
||||
# include "opencv2/nonfree/ocl.hpp"
|
||||
# include "opencv2/calib3d/calib3d.hpp"
|
||||
# include "opencv2/nonfree/nonfree.hpp"
|
||||
|
||||
using namespace cv;
|
||||
using namespace cv::ocl;
|
||||
@@ -326,3 +337,5 @@ int main(int argc, char* argv[])
|
||||
waitKey(0);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user