├── .gitattributes
├── .gitignore
├── LICENSE
├── NVRForDaHua.VC.db
├── NVRForDaHua.git
├── .svn
│ ├── entries
│ ├── format
│ ├── pristine
│ │ └── 7d
│ │ │ └── 7df059597099bb7dcf25d2a9aedfaf4465f72d8d.svn-base
│ ├── wc.db
│ └── wc.db-journal
└── trunk
│ └── LICENSE
├── NVRForDaHua.sln
├── NVRForDaHua
├── NVRForDaHua.vcxproj
├── NVRForDaHua.vcxproj.filters
├── main.cpp
└── test.dav
├── include
├── avglobal.h
├── dhconfigsdk.h
├── dhnetsdk.h
├── dhplay.h
├── opencv
│ ├── cv.h
│ ├── cv.hpp
│ ├── cvaux.h
│ ├── cvaux.hpp
│ ├── cvwimage.h
│ ├── cxcore.h
│ ├── cxcore.hpp
│ ├── cxeigen.hpp
│ ├── cxmisc.h
│ ├── highgui.h
│ └── ml.h
└── opencv2
│ ├── calib3d
│ └── calib3d.hpp
│ ├── contrib
│ ├── contrib.hpp
│ ├── detection_based_tracker.hpp
│ ├── hybridtracker.hpp
│ ├── openfabmap.hpp
│ └── retina.hpp
│ ├── core
│ ├── affine.hpp
│ ├── core.hpp
│ ├── core_c.h
│ ├── cuda_devptrs.hpp
│ ├── devmem2d.hpp
│ ├── eigen.hpp
│ ├── gpumat.hpp
│ ├── internal.hpp
│ ├── mat.hpp
│ ├── opengl_interop.hpp
│ ├── opengl_interop_deprecated.hpp
│ ├── operations.hpp
│ ├── types_c.h
│ ├── version.hpp
│ └── wimage.hpp
│ ├── features2d
│ └── features2d.hpp
│ ├── flann
│ ├── all_indices.h
│ ├── allocator.h
│ ├── any.h
│ ├── autotuned_index.h
│ ├── composite_index.h
│ ├── config.h
│ ├── defines.h
│ ├── dist.h
│ ├── dummy.h
│ ├── dynamic_bitset.h
│ ├── flann.hpp
│ ├── flann_base.hpp
│ ├── general.h
│ ├── ground_truth.h
│ ├── hdf5.h
│ ├── heap.h
│ ├── hierarchical_clustering_index.h
│ ├── index_testing.h
│ ├── kdtree_index.h
│ ├── kdtree_single_index.h
│ ├── kmeans_index.h
│ ├── linear_index.h
│ ├── logger.h
│ ├── lsh_index.h
│ ├── lsh_table.h
│ ├── matrix.h
│ ├── miniflann.hpp
│ ├── nn_index.h
│ ├── object_factory.h
│ ├── params.h
│ ├── random.h
│ ├── result_set.h
│ ├── sampling.h
│ ├── saving.h
│ ├── simplex_downhill.h
│ └── timer.h
│ ├── gpu
│ ├── device
│ │ ├── block.hpp
│ │ ├── border_interpolate.hpp
│ │ ├── color.hpp
│ │ ├── common.hpp
│ │ ├── datamov_utils.hpp
│ │ ├── detail
│ │ │ ├── color_detail.hpp
│ │ │ ├── reduce.hpp
│ │ │ ├── reduce_key_val.hpp
│ │ │ ├── transform_detail.hpp
│ │ │ ├── type_traits_detail.hpp
│ │ │ └── vec_distance_detail.hpp
│ │ ├── dynamic_smem.hpp
│ │ ├── emulation.hpp
│ │ ├── filters.hpp
│ │ ├── funcattrib.hpp
│ │ ├── functional.hpp
│ │ ├── limits.hpp
│ │ ├── reduce.hpp
│ │ ├── saturate_cast.hpp
│ │ ├── scan.hpp
│ │ ├── simd_functions.hpp
│ │ ├── static_check.hpp
│ │ ├── transform.hpp
│ │ ├── type_traits.hpp
│ │ ├── utility.hpp
│ │ ├── vec_distance.hpp
│ │ ├── vec_math.hpp
│ │ ├── vec_traits.hpp
│ │ ├── warp.hpp
│ │ ├── warp_reduce.hpp
│ │ └── warp_shuffle.hpp
│ ├── devmem2d.hpp
│ ├── gpu.hpp
│ ├── gpumat.hpp
│ └── stream_accessor.hpp
│ ├── highgui
│ ├── cap_ios.h
│ ├── highgui.hpp
│ ├── highgui_c.h
│ └── ios.h
│ ├── imgproc
│ ├── imgproc.hpp
│ ├── imgproc_c.h
│ └── types_c.h
│ ├── legacy
│ ├── blobtrack.hpp
│ ├── compat.hpp
│ ├── legacy.hpp
│ └── streams.hpp
│ ├── ml
│ └── ml.hpp
│ ├── nonfree
│ ├── features2d.hpp
│ ├── gpu.hpp
│ ├── nonfree.hpp
│ └── ocl.hpp
│ ├── objdetect
│ └── objdetect.hpp
│ ├── ocl
│ ├── matrix_operations.hpp
│ └── ocl.hpp
│ ├── opencv.hpp
│ ├── opencv_modules.hpp
│ ├── photo
│ ├── photo.hpp
│ └── photo_c.h
│ ├── stitching
│ ├── detail
│ │ ├── autocalib.hpp
│ │ ├── blenders.hpp
│ │ ├── camera.hpp
│ │ ├── exposure_compensate.hpp
│ │ ├── matchers.hpp
│ │ ├── motion_estimators.hpp
│ │ ├── seam_finders.hpp
│ │ ├── util.hpp
│ │ ├── util_inl.hpp
│ │ ├── warpers.hpp
│ │ └── warpers_inl.hpp
│ ├── stitcher.hpp
│ └── warpers.hpp
│ ├── superres
│ ├── optical_flow.hpp
│ └── superres.hpp
│ ├── ts
│ ├── gpu_perf.hpp
│ ├── gpu_test.hpp
│ ├── ts.hpp
│ ├── ts_gtest.h
│ └── ts_perf.hpp
│ ├── video
│ ├── background_segm.hpp
│ ├── tracking.hpp
│ └── video.hpp
│ └── videostab
│ ├── deblurring.hpp
│ ├── fast_marching.hpp
│ ├── fast_marching_inl.hpp
│ ├── frame_source.hpp
│ ├── global_motion.hpp
│ ├── inpainting.hpp
│ ├── log.hpp
│ ├── motion_stabilizing.hpp
│ ├── optical_flow.hpp
│ ├── stabilizer.hpp
│ └── videostab.hpp
└── lib
├── dhconfigsdk.lib
├── dhnetsdk.lib
├── dhplay.lib
├── opencv_core2410.lib
├── opencv_core2410d.lib
├── opencv_highgui2410.lib
├── opencv_highgui2410d.lib
├── opencv_imgproc2410.lib
└── opencv_imgproc2410d.lib
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.sln.docstates
8 |
9 | # Build results
10 | [Dd]ebug/
11 | [Dd]ebugPublic/
12 | [Rr]elease/
13 | x64/
14 | build/
15 | bld/
16 | [Bb]in/
17 | [Oo]bj/
18 |
19 | # Roslyn cache directories
20 | *.ide/
21 |
22 | # MSTest test Results
23 | [Tt]est[Rr]esult*/
24 | [Bb]uild[Ll]og.*
25 |
26 | #NUNIT
27 | *.VisualState.xml
28 | TestResult.xml
29 |
30 | # Build Results of an ATL Project
31 | [Dd]ebugPS/
32 | [Rr]eleasePS/
33 | dlldata.c
34 |
35 | *_i.c
36 | *_p.c
37 | *_i.h
38 | *.ilk
39 | *.meta
40 | *.obj
41 | *.pch
42 | *.pdb
43 | *.pgc
44 | *.pgd
45 | *.rsp
46 | *.sbr
47 | *.tlb
48 | *.tli
49 | *.tlh
50 | *.tmp
51 | *.tmp_proj
52 | *.log
53 | *.vspscc
54 | *.vssscc
55 | .builds
56 | *.pidb
57 | *.svclog
58 | *.scc
59 |
60 | # Chutzpah Test files
61 | _Chutzpah*
62 |
63 | # Visual C++ cache files
64 | ipch/
65 | *.aps
66 | *.ncb
67 | *.opensdf
68 | *.sdf
69 | *.cachefile
70 |
71 | # Visual Studio profiler
72 | *.psess
73 | *.vsp
74 | *.vspx
75 |
76 | # TFS 2012 Local Workspace
77 | $tf/
78 |
79 | # Guidance Automation Toolkit
80 | *.gpState
81 |
82 | # ReSharper is a .NET coding add-in
83 | _ReSharper*/
84 | *.[Rr]e[Ss]harper
85 | *.DotSettings.user
86 |
87 | # JustCode is a .NET coding addin-in
88 | .JustCode
89 |
90 | # TeamCity is a build add-in
91 | _TeamCity*
92 |
93 | # DotCover is a Code Coverage Tool
94 | *.dotCover
95 |
96 | # NCrunch
97 | _NCrunch_*
98 | .*crunch*.local.xml
99 |
100 | # MightyMoose
101 | *.mm.*
102 | AutoTest.Net/
103 |
104 | # Web workbench (sass)
105 | .sass-cache/
106 |
107 | # Installshield output folder
108 | [Ee]xpress/
109 |
110 | # DocProject is a documentation generator add-in
111 | DocProject/buildhelp/
112 | DocProject/Help/*.HxT
113 | DocProject/Help/*.HxC
114 | DocProject/Help/*.hhc
115 | DocProject/Help/*.hhk
116 | DocProject/Help/*.hhp
117 | DocProject/Help/Html2
118 | DocProject/Help/html
119 |
120 | # Click-Once directory
121 | publish/
122 |
123 | # Publish Web Output
124 | *.[Pp]ublish.xml
125 | *.azurePubxml
126 | ## TODO: Comment the next line if you want to checkin your
127 | ## web deploy settings but do note that will include unencrypted
128 | ## passwords
129 | #*.pubxml
130 |
131 | # NuGet Packages Directory
132 | packages/*
133 | ## TODO: If the tool you use requires repositories.config
134 | ## uncomment the next line
135 | #!packages/repositories.config
136 |
137 | # Enable "build/" folder in the NuGet Packages folder since
138 | # NuGet packages use it for MSBuild targets.
139 | # This line needs to be after the ignore of the build folder
140 | # (and the packages folder if the line above has been uncommented)
141 | !packages/build/
142 |
143 | # Windows Azure Build Output
144 | csx/
145 | *.build.csdef
146 |
147 | # Windows Store app package directory
148 | AppPackages/
149 |
150 | # Others
151 | sql/
152 | *.Cache
153 | ClientBin/
154 | [Ss]tyle[Cc]op.*
155 | ~$*
156 | *~
157 | *.dbmdl
158 | *.dbproj.schemaview
159 | *.pfx
160 | *.publishsettings
161 | node_modules/
162 |
163 | # RIA/Silverlight projects
164 | Generated_Code/
165 |
166 | # Backup & report files from converting an old project file
167 | # to a newer Visual Studio version. Backup files are not needed,
168 | # because we have git ;-)
169 | _UpgradeReport_Files/
170 | Backup*/
171 | UpgradeLog*.XML
172 | UpgradeLog*.htm
173 |
174 | # SQL Server files
175 | *.mdf
176 | *.ldf
177 |
178 | # Business Intelligence projects
179 | *.rdl.data
180 | *.bim.layout
181 | *.bim_*.settings
182 |
183 | # Microsoft Fakes
184 | FakesAssemblies/
185 |
186 | # LightSwitch generated files
187 | GeneratedArtifacts/
188 | _Pvt_Extensions/
189 | ModelManifest.xml
--------------------------------------------------------------------------------
/NVRForDaHua.VC.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/NVRForDaHua.VC.db
--------------------------------------------------------------------------------
/NVRForDaHua.git/.svn/entries:
--------------------------------------------------------------------------------
1 | 12
2 |
--------------------------------------------------------------------------------
/NVRForDaHua.git/.svn/format:
--------------------------------------------------------------------------------
1 | 12
2 |
--------------------------------------------------------------------------------
/NVRForDaHua.git/.svn/wc.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/NVRForDaHua.git/.svn/wc.db
--------------------------------------------------------------------------------
/NVRForDaHua.git/.svn/wc.db-journal:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/NVRForDaHua.git/.svn/wc.db-journal
--------------------------------------------------------------------------------
/NVRForDaHua.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2013
4 | VisualStudioVersion = 12.0.40629.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NVRForDaHua", "NVRForDaHua\NVRForDaHua.vcxproj", "{A1442FDA-073C-4C2C-B350-D1079A58D592}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Win32 = Debug|Win32
11 | Debug|x64 = Debug|x64
12 | Release|Win32 = Release|Win32
13 | Release|x64 = Release|x64
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {A1442FDA-073C-4C2C-B350-D1079A58D592}.Debug|Win32.ActiveCfg = Debug|Win32
17 | {A1442FDA-073C-4C2C-B350-D1079A58D592}.Debug|Win32.Build.0 = Debug|Win32
18 | {A1442FDA-073C-4C2C-B350-D1079A58D592}.Debug|x64.ActiveCfg = Debug|x64
19 | {A1442FDA-073C-4C2C-B350-D1079A58D592}.Release|Win32.ActiveCfg = Release|Win32
20 | {A1442FDA-073C-4C2C-B350-D1079A58D592}.Release|Win32.Build.0 = Release|Win32
21 | {A1442FDA-073C-4C2C-B350-D1079A58D592}.Release|x64.ActiveCfg = Release|x64
22 | {A1442FDA-073C-4C2C-B350-D1079A58D592}.Release|x64.Build.0 = Release|x64
23 | EndGlobalSection
24 | GlobalSection(SolutionProperties) = preSolution
25 | HideSolutionNode = FALSE
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/NVRForDaHua/NVRForDaHua.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 | 源文件
20 |
21 |
22 |
--------------------------------------------------------------------------------
/NVRForDaHua/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/NVRForDaHua/main.cpp
--------------------------------------------------------------------------------
/NVRForDaHua/test.dav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/NVRForDaHua/test.dav
--------------------------------------------------------------------------------
/include/avglobal.h:
--------------------------------------------------------------------------------
1 |
2 | #ifndef AVGLOBAL_H
3 | #define AVGLOBAL_H
4 |
5 | typedef int AV_int32;
6 | typedef unsigned int AV_uint32;
7 |
8 | #ifndef __OBJC__
9 | typedef int AV_BOOL;
10 | #else
11 | typedef BOOL AV_BOOL;
12 | #endif
13 |
14 | typedef void* AV_HANDLE;
15 | typedef unsigned char AV_BYTE;
16 | typedef float AV_float;
17 |
18 | #ifdef WIN32
19 | typedef __int64 AV_int64;
20 | typedef unsigned __int64 AV_uint64;
21 | #else
22 | typedef long long AV_int64;
23 | typedef unsigned long long AV_uint64;
24 | #endif
25 |
26 | #endif
27 |
28 |
29 |
--------------------------------------------------------------------------------
/include/dhconfigsdk.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/include/dhconfigsdk.h
--------------------------------------------------------------------------------
/include/dhnetsdk.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/include/dhnetsdk.h
--------------------------------------------------------------------------------
/include/dhplay.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/include/dhplay.h
--------------------------------------------------------------------------------
/include/opencv/cv.h:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_OLD_CV_H__
44 | #define __OPENCV_OLD_CV_H__
45 |
46 | #if defined(_MSC_VER)
47 | #define CV_DO_PRAGMA(x) __pragma(x)
48 | #define __CVSTR2__(x) #x
49 | #define __CVSTR1__(x) __CVSTR2__(x)
50 | #define __CVMSVCLOC__ __FILE__ "("__CVSTR1__(__LINE__)") : "
51 | #define CV_MSG_PRAGMA(_msg) CV_DO_PRAGMA(message (__CVMSVCLOC__ _msg))
52 | #elif defined(__GNUC__)
53 | #define CV_DO_PRAGMA(x) _Pragma (#x)
54 | #define CV_MSG_PRAGMA(_msg) CV_DO_PRAGMA(message (_msg))
55 | #else
56 | #define CV_DO_PRAGMA(x)
57 | #define CV_MSG_PRAGMA(_msg)
58 | #endif
59 | #define CV_WARNING(x) CV_MSG_PRAGMA("Warning: " #x)
60 |
61 | //CV_WARNING("This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module")
62 |
63 | #include "opencv2/core/core_c.h"
64 | #include "opencv2/core/core.hpp"
65 | #include "opencv2/imgproc/imgproc_c.h"
66 | #include "opencv2/imgproc/imgproc.hpp"
67 | #include "opencv2/video/tracking.hpp"
68 | #include "opencv2/features2d/features2d.hpp"
69 | #include "opencv2/flann/flann.hpp"
70 | #include "opencv2/calib3d/calib3d.hpp"
71 | #include "opencv2/objdetect/objdetect.hpp"
72 | #include "opencv2/legacy/compat.hpp"
73 |
74 | #if !defined(CV_IMPL)
75 | #define CV_IMPL extern "C"
76 | #endif //CV_IMPL
77 |
78 | #if defined(__cplusplus)
79 | #include "opencv2/core/internal.hpp"
80 | #endif //__cplusplus
81 |
82 | #endif // __OPENCV_OLD_CV_H_
83 |
--------------------------------------------------------------------------------
/include/opencv/cv.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_OLD_CV_HPP__
44 | #define __OPENCV_OLD_CV_HPP__
45 |
46 | //#if defined(__GNUC__)
47 | //#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
48 | //#endif
49 |
50 | #include
51 |
52 | #endif
53 |
--------------------------------------------------------------------------------
/include/opencv/cvaux.h:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // Intel License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000, Intel Corporation, all rights reserved.
14 | // Third party copyrights are property of their respective owners.
15 | //
16 | // Redistribution and use in source and binary forms, with or without modification,
17 | // are permitted provided that the following conditions are met:
18 | //
19 | // * Redistribution's of source code must retain the above copyright notice,
20 | // this list of conditions and the following disclaimer.
21 | //
22 | // * Redistribution's in binary form must reproduce the above copyright notice,
23 | // this list of conditions and the following disclaimer in the documentation
24 | // and/or other materials provided with the distribution.
25 | //
26 | // * The name of Intel Corporation may not be used to endorse or promote products
27 | // derived from this software without specific prior written permission.
28 | //
29 | // This software is provided by the copyright holders and contributors "as is" and
30 | // any express or implied warranties, including, but not limited to, the implied
31 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
32 | // In no event shall the Intel Corporation or contributors be liable for any direct,
33 | // indirect, incidental, special, exemplary, or consequential damages
34 | // (including, but not limited to, procurement of substitute goods or services;
35 | // loss of use, data, or profits; or business interruption) however caused
36 | // and on any theory of liability, whether in contract, strict liability,
37 | // or tort (including negligence or otherwise) arising in any way out of
38 | // the use of this software, even if advised of the possibility of such damage.
39 | //
40 | //M*/
41 |
42 | #ifndef __OPENCV_OLD_AUX_H__
43 | #define __OPENCV_OLD_AUX_H__
44 |
45 | //#if defined(__GNUC__)
46 | //#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
47 | //#endif
48 |
49 | #include "opencv2/core/core_c.h"
50 | #include "opencv2/core/core.hpp"
51 | #include "opencv2/imgproc/imgproc_c.h"
52 | #include "opencv2/imgproc/imgproc.hpp"
53 | #include "opencv2/video/tracking.hpp"
54 | #include "opencv2/video/background_segm.hpp"
55 | #include "opencv2/features2d/features2d.hpp"
56 | #include "opencv2/calib3d/calib3d.hpp"
57 | #include "opencv2/objdetect/objdetect.hpp"
58 | #include "opencv2/legacy/legacy.hpp"
59 | #include "opencv2/legacy/compat.hpp"
60 | #include "opencv2/legacy/blobtrack.hpp"
61 | #include "opencv2/contrib/contrib.hpp"
62 |
63 | #endif
64 |
65 | /* End of file. */
66 |
--------------------------------------------------------------------------------
/include/opencv/cvaux.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // Intel License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000, Intel Corporation, all rights reserved.
14 | // Third party copyrights are property of their respective owners.
15 | //
16 | // Redistribution and use in source and binary forms, with or without modification,
17 | // are permitted provided that the following conditions are met:
18 | //
19 | // * Redistribution's of source code must retain the above copyright notice,
20 | // this list of conditions and the following disclaimer.
21 | //
22 | // * Redistribution's in binary form must reproduce the above copyright notice,
23 | // this list of conditions and the following disclaimer in the documentation
24 | // and/or other materials provided with the distribution.
25 | //
26 | // * The name of Intel Corporation may not be used to endorse or promote products
27 | // derived from this software without specific prior written permission.
28 | //
29 | // This software is provided by the copyright holders and contributors "as is" and
30 | // any express or implied warranties, including, but not limited to, the implied
31 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
32 | // In no event shall the Intel Corporation or contributors be liable for any direct,
33 | // indirect, incidental, special, exemplary, or consequential damages
34 | // (including, but not limited to, procurement of substitute goods or services;
35 | // loss of use, data, or profits; or business interruption) however caused
36 | // and on any theory of liability, whether in contract, strict liability,
37 | // or tort (including negligence or otherwise) arising in any way out of
38 | // the use of this software, even if advised of the possibility of such damage.
39 | //
40 | //M*/
41 |
42 | #ifndef __OPENCV_OLD_AUX_HPP__
43 | #define __OPENCV_OLD_AUX_HPP__
44 |
45 | //#if defined(__GNUC__)
46 | //#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
47 | //#endif
48 |
49 | #include
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/include/opencv/cvwimage.h:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////
2 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
3 | //
4 | // By downloading, copying, installing or using the software you agree to
5 | // this license. If you do not agree to this license, do not download,
6 | // install, copy or use the software.
7 | //
8 | // License Agreement
9 | // For Open Source Computer Vision Library
10 | //
11 | // Copyright (C) 2008, Google, all rights reserved.
12 | // Third party copyrights are property of their respective owners.
13 | //
14 | // Redistribution and use in source and binary forms, with or without
15 | // modification, are permitted provided that the following conditions are met:
16 | //
17 | // * Redistribution's of source code must retain the above copyright notice,
18 | // this list of conditions and the following disclaimer.
19 | //
20 | // * Redistribution's in binary form must reproduce the above copyright notice,
21 | // this list of conditions and the following disclaimer in the documentation
22 | // and/or other materials provided with the distribution.
23 | //
24 | // * The name of Intel Corporation or contributors may not be used to endorse
25 | // or promote products derived from this software without specific
26 | // prior written permission.
27 | //
28 | // This software is provided by the copyright holders and contributors "as is"
29 | // and any express or implied warranties, including, but not limited to, the
30 | // implied warranties of merchantability and fitness for a particular purpose
31 | // are disclaimed. In no event shall the Intel Corporation or contributors be
32 | // liable for any direct, indirect, incidental, special, exemplary, or
33 | // consequential damages
34 | // (including, but not limited to, procurement of substitute goods or services;
35 | // loss of use, data, or profits; or business interruption) however caused
36 | // and on any theory of liability, whether in contract, strict liability,
37 | // or tort (including negligence or otherwise) arising in any way out of
38 | // the use of this software, even if advised of the possibility of such damage.
39 |
40 |
41 | #ifndef __OPENCV_OLD_WIMAGE_HPP__
42 | #define __OPENCV_OLD_WIMAGE_HPP__
43 |
44 | #include "opencv2/core/wimage.hpp"
45 |
46 | #endif
47 |
--------------------------------------------------------------------------------
/include/opencv/cxcore.h:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_OLD_CXCORE_H__
44 | #define __OPENCV_OLD_CXCORE_H__
45 |
46 | //#if defined(__GNUC__)
47 | //#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
48 | //#endif
49 |
50 | #include "opencv2/core/core_c.h"
51 | #include "opencv2/core/core.hpp"
52 |
53 | #endif
54 |
--------------------------------------------------------------------------------
/include/opencv/cxcore.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_OLD_CXCORE_HPP__
44 | #define __OPENCV_OLD_CXCORE_HPP__
45 |
46 | //#if defined(__GNUC__)
47 | //#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
48 | //#endif
49 |
50 | #include
51 |
52 | #endif
53 |
--------------------------------------------------------------------------------
/include/opencv/cxeigen.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_OLD_EIGEN_HPP__
44 | #define __OPENCV_OLD_EIGEN_HPP__
45 |
46 | #include "opencv2/core/eigen.hpp"
47 |
48 | #endif
49 |
--------------------------------------------------------------------------------
/include/opencv/cxmisc.h:
--------------------------------------------------------------------------------
1 | #ifndef __OPENCV_OLD_CXMISC_H__
2 | #define __OPENCV_OLD_CXMISC_H__
3 |
4 | #include "opencv2/core/internal.hpp"
5 |
6 | #endif
7 |
--------------------------------------------------------------------------------
/include/opencv/highgui.h:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // Intel License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000, Intel Corporation, all rights reserved.
14 | // Third party copyrights are property of their respective owners.
15 | //
16 | // Redistribution and use in source and binary forms, with or without modification,
17 | // are permitted provided that the following conditions are met:
18 | //
19 | // * Redistribution's of source code must retain the above copyright notice,
20 | // this list of conditions and the following disclaimer.
21 | //
22 | // * Redistribution's in binary form must reproduce the above copyright notice,
23 | // this list of conditions and the following disclaimer in the documentation
24 | // and/or other materials provided with the distribution.
25 | //
26 | // * The name of Intel Corporation may not be used to endorse or promote products
27 | // derived from this software without specific prior written permission.
28 | //
29 | // This software is provided by the copyright holders and contributors "as is" and
30 | // any express or implied warranties, including, but not limited to, the implied
31 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
32 | // In no event shall the Intel Corporation or contributors be liable for any direct,
33 | // indirect, incidental, special, exemplary, or consequential damages
34 | // (including, but not limited to, procurement of substitute goods or services;
35 | // loss of use, data, or profits; or business interruption) however caused
36 | // and on any theory of liability, whether in contract, strict liability,
37 | // or tort (including negligence or otherwise) arising in any way out of
38 | // the use of this software, even if advised of the possibility of such damage.
39 | //
40 | //M*/
41 |
42 | #ifndef __OPENCV_OLD_HIGHGUI_H__
43 | #define __OPENCV_OLD_HIGHGUI_H__
44 |
45 | #include "opencv2/core/core_c.h"
46 | #include "opencv2/core/core.hpp"
47 | #include "opencv2/highgui/highgui_c.h"
48 | #include "opencv2/highgui/highgui.hpp"
49 |
50 | #endif
51 |
--------------------------------------------------------------------------------
/include/opencv/ml.h:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // Intel License Agreement
11 | //
12 | // Copyright (C) 2000, Intel Corporation, all rights reserved.
13 | // Third party copyrights are property of their respective owners.
14 | //
15 | // Redistribution and use in source and binary forms, with or without modification,
16 | // are permitted provided that the following conditions are met:
17 | //
18 | // * Redistribution's of source code must retain the above copyright notice,
19 | // this list of conditions and the following disclaimer.
20 | //
21 | // * Redistribution's in binary form must reproduce the above copyright notice,
22 | // this list of conditions and the following disclaimer in the documentation
23 | // and/or other materials provided with the distribution.
24 | //
25 | // * The name of Intel Corporation may not be used to endorse or promote products
26 | // derived from this software without specific prior written permission.
27 | //
28 | // This software is provided by the copyright holders and contributors "as is" and
29 | // any express or implied warranties, including, but not limited to, the implied
30 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
31 | // In no event shall the Intel Corporation or contributors be liable for any direct,
32 | // indirect, incidental, special, exemplary, or consequential damages
33 | // (including, but not limited to, procurement of substitute goods or services;
34 | // loss of use, data, or profits; or business interruption) however caused
35 | // and on any theory of liability, whether in contract, strict liability,
36 | // or tort (including negligence or otherwise) arising in any way out of
37 | // the use of this software, even if advised of the possibility of such damage.
38 | //
39 | //M*/
40 |
41 | #ifndef __OPENCV_OLD_ML_H__
42 | #define __OPENCV_OLD_ML_H__
43 |
44 | #include "opencv2/core/core_c.h"
45 | #include "opencv2/core/core.hpp"
46 | #include "opencv2/ml/ml.hpp"
47 |
48 | #endif
49 |
--------------------------------------------------------------------------------
/include/opencv2/contrib/detection_based_tracker.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #if defined(__linux__) || defined(LINUX) || defined(__APPLE__) || defined(ANDROID)
4 |
5 | #include
6 | #include
7 |
8 | #include
9 |
10 | class DetectionBasedTracker
11 | {
12 | public:
13 | struct Parameters
14 | {
15 | int minObjectSize;
16 | int maxObjectSize;
17 | double scaleFactor;
18 | int maxTrackLifetime;
19 | int minNeighbors;
20 | int minDetectionPeriod; //the minimal time between run of the big object detector (on the whole frame) in ms (1000 mean 1 sec), default=0
21 |
22 | Parameters();
23 | };
24 |
25 | DetectionBasedTracker(const std::string& cascadeFilename, const Parameters& params);
26 | virtual ~DetectionBasedTracker();
27 |
28 | virtual bool run();
29 | virtual void stop();
30 | virtual void resetTracking();
31 |
32 | virtual void process(const cv::Mat& imageGray);
33 |
34 | bool setParameters(const Parameters& params);
35 | const Parameters& getParameters();
36 |
37 |
38 | typedef std::pair Object;
39 | virtual void getObjects(std::vector& result) const;
40 | virtual void getObjects(std::vector& result) const;
41 |
42 | protected:
43 | class SeparateDetectionWork;
44 | cv::Ptr separateDetectionWork;
45 | friend void* workcycleObjectDetectorFunction(void* p);
46 |
47 |
48 | struct InnerParameters
49 | {
50 | int numLastPositionsToTrack;
51 | int numStepsToWaitBeforeFirstShow;
52 | int numStepsToTrackWithoutDetectingIfObjectHasNotBeenShown;
53 | int numStepsToShowWithoutDetecting;
54 |
55 | float coeffTrackingWindowSize;
56 | float coeffObjectSizeToTrack;
57 | float coeffObjectSpeedUsingInPrediction;
58 |
59 | InnerParameters();
60 | };
61 | Parameters parameters;
62 | InnerParameters innerParameters;
63 |
64 | struct TrackedObject
65 | {
66 | typedef std::vector PositionsVector;
67 |
68 | PositionsVector lastPositions;
69 |
70 | int numDetectedFrames;
71 | int numFramesNotDetected;
72 | int id;
73 |
74 | TrackedObject(const cv::Rect& rect):numDetectedFrames(1), numFramesNotDetected(0)
75 | {
76 | lastPositions.push_back(rect);
77 | id=getNextId();
78 | };
79 |
80 | static int getNextId()
81 | {
82 | static int _id=0;
83 | return _id++;
84 | }
85 | };
86 |
87 | int numTrackedSteps;
88 | std::vector trackedObjects;
89 |
90 | std::vector weightsPositionsSmoothing;
91 | std::vector weightsSizesSmoothing;
92 |
93 | cv::CascadeClassifier cascadeForTracking;
94 |
95 |
96 | void updateTrackedObjects(const std::vector& detectedObjects);
97 | cv::Rect calcTrackedObjectPositionToShow(int i) const;
98 | void detectInRegion(const cv::Mat& img, const cv::Rect& r, std::vector& detectedObjectsInRegions);
99 | };
100 |
101 | namespace cv
102 | {
103 | using ::DetectionBasedTracker;
104 | } //end of cv namespace
105 |
106 | #endif
107 |
--------------------------------------------------------------------------------
/include/opencv2/core/devmem2d.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #include "opencv2/core/cuda_devptrs.hpp"
44 |
--------------------------------------------------------------------------------
/include/opencv2/core/version.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // Intel License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright( C) 2000, Intel Corporation, all rights reserved.
14 | // Third party copyrights are property of their respective owners.
15 | //
16 | // Redistribution and use in source and binary forms, with or without modification,
17 | // are permitted provided that the following conditions are met:
18 | //
19 | // * Redistribution's of source code must retain the above copyright notice,
20 | // this list of conditions and the following disclaimer.
21 | //
22 | // * Redistribution's in binary form must reproduce the above copyright notice,
23 | // this list of conditions and the following disclaimer in the documentation
24 | // and/or other materials provided with the distribution.
25 | //
26 | // * The name of Intel Corporation may not be used to endorse or promote products
27 | // derived from this software without specific prior written permission.
28 | //
29 | // This software is provided by the copyright holders and contributors "as is" and
30 | // any express or implied warranties, including, but not limited to, the implied
31 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
32 | // In no event shall the Intel Corporation or contributors be liable for any direct,
33 | // indirect, incidental, special, exemplary, or consequential damages
34 | //(including, but not limited to, procurement of substitute goods or services;
35 | // loss of use, data, or profits; or business interruption) however caused
36 | // and on any theory of liability, whether in contract, strict liability,
37 | // or tort(including negligence or otherwise) arising in any way out of
38 | // the use of this software, even if advised of the possibility of such damage.
39 | //
40 | //M*/
41 |
42 | /*
43 | definition of the current version of OpenCV
44 | Usefull to test in user programs
45 | */
46 |
47 | #ifndef __OPENCV_VERSION_HPP__
48 | #define __OPENCV_VERSION_HPP__
49 |
50 | #define CV_VERSION_EPOCH 2
51 | #define CV_VERSION_MAJOR 4
52 | #define CV_VERSION_MINOR 10
53 | #define CV_VERSION_REVISION 0
54 |
55 | #define CVAUX_STR_EXP(__A) #__A
56 | #define CVAUX_STR(__A) CVAUX_STR_EXP(__A)
57 |
58 | #define CVAUX_STRW_EXP(__A) L#__A
59 | #define CVAUX_STRW(__A) CVAUX_STRW_EXP(__A)
60 |
61 | #if CV_VERSION_REVISION
62 | # define CV_VERSION CVAUX_STR(CV_VERSION_EPOCH) "." CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION)
63 | #else
64 | # define CV_VERSION CVAUX_STR(CV_VERSION_EPOCH) "." CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR)
65 | #endif
66 |
67 | /* old style version constants*/
68 | #define CV_MAJOR_VERSION CV_VERSION_EPOCH
69 | #define CV_MINOR_VERSION CV_VERSION_MAJOR
70 | #define CV_SUBMINOR_VERSION CV_VERSION_MINOR
71 |
72 | #endif
73 |
--------------------------------------------------------------------------------
/include/opencv2/flann/config.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2011 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2011 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without
8 | * modification, are permitted provided that the following conditions
9 | * are met:
10 | *
11 | * 1. Redistributions of source code must retain the above copyright
12 | * notice, this list of conditions and the following disclaimer.
13 | * 2. Redistributions in binary form must reproduce the above copyright
14 | * notice, this list of conditions and the following disclaimer in the
15 | * documentation and/or other materials provided with the distribution.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | *************************************************************************/
28 |
29 |
30 | #ifndef OPENCV_FLANN_CONFIG_H_
31 | #define OPENCV_FLANN_CONFIG_H_
32 |
33 | #ifdef FLANN_VERSION_
34 | #undef FLANN_VERSION_
35 | #endif
36 | #define FLANN_VERSION_ "1.6.10"
37 |
38 | #endif /* OPENCV_FLANN_CONFIG_H_ */
39 |
--------------------------------------------------------------------------------
/include/opencv2/flann/defines.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2011 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2011 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without
8 | * modification, are permitted provided that the following conditions
9 | * are met:
10 | *
11 | * 1. Redistributions of source code must retain the above copyright
12 | * notice, this list of conditions and the following disclaimer.
13 | * 2. Redistributions in binary form must reproduce the above copyright
14 | * notice, this list of conditions and the following disclaimer in the
15 | * documentation and/or other materials provided with the distribution.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | *************************************************************************/
28 |
29 |
30 | #ifndef OPENCV_FLANN_DEFINES_H_
31 | #define OPENCV_FLANN_DEFINES_H_
32 |
33 | #include "config.h"
34 |
35 | #ifdef FLANN_EXPORT
36 | #undef FLANN_EXPORT
37 | #endif
38 | #ifdef WIN32
39 | /* win32 dll export/import directives */
40 | #ifdef FLANN_EXPORTS
41 | #define FLANN_EXPORT __declspec(dllexport)
42 | #elif defined(FLANN_STATIC)
43 | #define FLANN_EXPORT
44 | #else
45 | #define FLANN_EXPORT __declspec(dllimport)
46 | #endif
47 | #else
48 | /* unix needs nothing */
49 | #define FLANN_EXPORT
50 | #endif
51 |
52 |
53 | #ifdef FLANN_DEPRECATED
54 | #undef FLANN_DEPRECATED
55 | #endif
56 | #ifdef __GNUC__
57 | #define FLANN_DEPRECATED __attribute__ ((deprecated))
58 | #elif defined(_MSC_VER)
59 | #define FLANN_DEPRECATED __declspec(deprecated)
60 | #else
61 | #pragma message("WARNING: You need to implement FLANN_DEPRECATED for this compiler")
62 | #define FLANN_DEPRECATED
63 | #endif
64 |
65 |
66 | #undef FLANN_PLATFORM_32_BIT
67 | #undef FLANN_PLATFORM_64_BIT
68 | #if defined __amd64__ || defined __x86_64__ || defined _WIN64 || defined _M_X64
69 | #define FLANN_PLATFORM_64_BIT
70 | #else
71 | #define FLANN_PLATFORM_32_BIT
72 | #endif
73 |
74 |
75 | #undef FLANN_ARRAY_LEN
76 | #define FLANN_ARRAY_LEN(a) (sizeof(a)/sizeof(a[0]))
77 |
78 | namespace cvflann {
79 |
80 | /* Nearest neighbour index algorithms */
81 | enum flann_algorithm_t
82 | {
83 | FLANN_INDEX_LINEAR = 0,
84 | FLANN_INDEX_KDTREE = 1,
85 | FLANN_INDEX_KMEANS = 2,
86 | FLANN_INDEX_COMPOSITE = 3,
87 | FLANN_INDEX_KDTREE_SINGLE = 4,
88 | FLANN_INDEX_HIERARCHICAL = 5,
89 | FLANN_INDEX_LSH = 6,
90 | FLANN_INDEX_SAVED = 254,
91 | FLANN_INDEX_AUTOTUNED = 255,
92 |
93 | // deprecated constants, should use the FLANN_INDEX_* ones instead
94 | LINEAR = 0,
95 | KDTREE = 1,
96 | KMEANS = 2,
97 | COMPOSITE = 3,
98 | KDTREE_SINGLE = 4,
99 | SAVED = 254,
100 | AUTOTUNED = 255
101 | };
102 |
103 |
104 |
105 | enum flann_centers_init_t
106 | {
107 | FLANN_CENTERS_RANDOM = 0,
108 | FLANN_CENTERS_GONZALES = 1,
109 | FLANN_CENTERS_KMEANSPP = 2,
110 |
111 | // deprecated constants, should use the FLANN_CENTERS_* ones instead
112 | CENTERS_RANDOM = 0,
113 | CENTERS_GONZALES = 1,
114 | CENTERS_KMEANSPP = 2
115 | };
116 |
117 | enum flann_log_level_t
118 | {
119 | FLANN_LOG_NONE = 0,
120 | FLANN_LOG_FATAL = 1,
121 | FLANN_LOG_ERROR = 2,
122 | FLANN_LOG_WARN = 3,
123 | FLANN_LOG_INFO = 4
124 | };
125 |
126 | enum flann_distance_t
127 | {
128 | FLANN_DIST_EUCLIDEAN = 1,
129 | FLANN_DIST_L2 = 1,
130 | FLANN_DIST_MANHATTAN = 2,
131 | FLANN_DIST_L1 = 2,
132 | FLANN_DIST_MINKOWSKI = 3,
133 | FLANN_DIST_MAX = 4,
134 | FLANN_DIST_HIST_INTERSECT = 5,
135 | FLANN_DIST_HELLINGER = 6,
136 | FLANN_DIST_CHI_SQUARE = 7,
137 | FLANN_DIST_CS = 7,
138 | FLANN_DIST_KULLBACK_LEIBLER = 8,
139 | FLANN_DIST_KL = 8,
140 | FLANN_DIST_HAMMING = 9,
141 |
142 | // deprecated constants, should use the FLANN_DIST_* ones instead
143 | EUCLIDEAN = 1,
144 | MANHATTAN = 2,
145 | MINKOWSKI = 3,
146 | MAX_DIST = 4,
147 | HIST_INTERSECT = 5,
148 | HELLINGER = 6,
149 | CS = 7,
150 | KL = 8,
151 | KULLBACK_LEIBLER = 8
152 | };
153 |
154 | enum flann_datatype_t
155 | {
156 | FLANN_INT8 = 0,
157 | FLANN_INT16 = 1,
158 | FLANN_INT32 = 2,
159 | FLANN_INT64 = 3,
160 | FLANN_UINT8 = 4,
161 | FLANN_UINT16 = 5,
162 | FLANN_UINT32 = 6,
163 | FLANN_UINT64 = 7,
164 | FLANN_FLOAT32 = 8,
165 | FLANN_FLOAT64 = 9
166 | };
167 |
168 | enum
169 | {
170 | FLANN_CHECKS_UNLIMITED = -1,
171 | FLANN_CHECKS_AUTOTUNED = -2
172 | };
173 |
174 | }
175 |
176 | #endif /* OPENCV_FLANN_DEFINES_H_ */
177 |
--------------------------------------------------------------------------------
/include/opencv2/flann/dummy.h:
--------------------------------------------------------------------------------
1 |
2 | #ifndef OPENCV_FLANN_DUMMY_H_
3 | #define OPENCV_FLANN_DUMMY_H_
4 |
5 | namespace cvflann
6 | {
7 |
8 | #if (defined WIN32 || defined _WIN32 || defined WINCE) && defined CVAPI_EXPORTS
9 | __declspec(dllexport)
10 | #endif
11 | void dummyfunc();
12 |
13 | }
14 |
15 |
16 | #endif /* OPENCV_FLANN_DUMMY_H_ */
17 |
--------------------------------------------------------------------------------
/include/opencv2/flann/dynamic_bitset.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | /***********************************************************************
32 | * Author: Vincent Rabaud
33 | *************************************************************************/
34 |
35 | #ifndef OPENCV_FLANN_DYNAMIC_BITSET_H_
36 | #define OPENCV_FLANN_DYNAMIC_BITSET_H_
37 |
38 | #ifndef FLANN_USE_BOOST
39 | # define FLANN_USE_BOOST 0
40 | #endif
41 | //#define FLANN_USE_BOOST 1
42 | #if FLANN_USE_BOOST
43 | #include
44 | typedef boost::dynamic_bitset<> DynamicBitset;
45 | #else
46 |
47 | #include
48 |
49 | #include "dist.h"
50 |
51 | namespace cvflann {
52 |
53 | /** Class re-implementing the boost version of it
54 | * This helps not depending on boost, it also does not do the bound checks
55 | * and has a way to reset a block for speed
56 | */
57 | class DynamicBitset
58 | {
59 | public:
60 | /** @param default constructor
61 | */
62 | DynamicBitset()
63 | {
64 | }
65 |
66 | /** @param only constructor we use in our code
67 | * @param the size of the bitset (in bits)
68 | */
69 | DynamicBitset(size_t sz)
70 | {
71 | resize(sz);
72 | reset();
73 | }
74 |
75 | /** Sets all the bits to 0
76 | */
77 | void clear()
78 | {
79 | std::fill(bitset_.begin(), bitset_.end(), 0);
80 | }
81 |
82 | /** @brief checks if the bitset is empty
83 | * @return true if the bitset is empty
84 | */
85 | bool empty() const
86 | {
87 | return bitset_.empty();
88 | }
89 |
90 | /** @param set all the bits to 0
91 | */
92 | void reset()
93 | {
94 | std::fill(bitset_.begin(), bitset_.end(), 0);
95 | }
96 |
97 | /** @brief set one bit to 0
98 | * @param
99 | */
100 | void reset(size_t index)
101 | {
102 | bitset_[index / cell_bit_size_] &= ~(size_t(1) << (index % cell_bit_size_));
103 | }
104 |
105 | /** @brief sets a specific bit to 0, and more bits too
106 | * This function is useful when resetting a given set of bits so that the
107 | * whole bitset ends up being 0: if that's the case, we don't care about setting
108 | * other bits to 0
109 | * @param
110 | */
111 | void reset_block(size_t index)
112 | {
113 | bitset_[index / cell_bit_size_] = 0;
114 | }
115 |
116 | /** @param resize the bitset so that it contains at least size bits
117 | * @param size
118 | */
119 | void resize(size_t sz)
120 | {
121 | size_ = sz;
122 | bitset_.resize(sz / cell_bit_size_ + 1);
123 | }
124 |
125 | /** @param set a bit to true
126 | * @param index the index of the bit to set to 1
127 | */
128 | void set(size_t index)
129 | {
130 | bitset_[index / cell_bit_size_] |= size_t(1) << (index % cell_bit_size_);
131 | }
132 |
133 | /** @param gives the number of contained bits
134 | */
135 | size_t size() const
136 | {
137 | return size_;
138 | }
139 |
140 | /** @param check if a bit is set
141 | * @param index the index of the bit to check
142 | * @return true if the bit is set
143 | */
144 | bool test(size_t index) const
145 | {
146 | return (bitset_[index / cell_bit_size_] & (size_t(1) << (index % cell_bit_size_))) != 0;
147 | }
148 |
149 | private:
150 | std::vector bitset_;
151 | size_t size_;
152 | static const unsigned int cell_bit_size_ = CHAR_BIT * sizeof(size_t);
153 | };
154 |
155 | } // namespace cvflann
156 |
157 | #endif
158 |
159 | #endif // OPENCV_FLANN_DYNAMIC_BITSET_H_
160 |
--------------------------------------------------------------------------------
/include/opencv2/flann/general.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | #ifndef OPENCV_FLANN_GENERAL_H_
32 | #define OPENCV_FLANN_GENERAL_H_
33 |
34 | #include "defines.h"
35 | #include
36 | #include
37 |
38 | namespace cvflann
39 | {
40 |
41 | class FLANNException : public std::runtime_error
42 | {
43 | public:
44 | FLANNException(const char* message) : std::runtime_error(message) { }
45 |
46 | FLANNException(const std::string& message) : std::runtime_error(message) { }
47 | };
48 |
49 | }
50 |
51 |
52 | #endif /* OPENCV_FLANN_GENERAL_H_ */
53 |
--------------------------------------------------------------------------------
/include/opencv2/flann/ground_truth.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | #ifndef OPENCV_FLANN_GROUND_TRUTH_H_
32 | #define OPENCV_FLANN_GROUND_TRUTH_H_
33 |
34 | #include "dist.h"
35 | #include "matrix.h"
36 |
37 |
38 | namespace cvflann
39 | {
40 |
41 | template
42 | void find_nearest(const Matrix& dataset, typename Distance::ElementType* query, int* matches, int nn,
43 | int skip = 0, Distance distance = Distance())
44 | {
45 | typedef typename Distance::ResultType DistanceType;
46 | int n = nn + skip;
47 |
48 | std::vector match(n);
49 | std::vector dists(n);
50 |
51 | dists[0] = distance(dataset[0], query, dataset.cols);
52 | match[0] = 0;
53 | int dcnt = 1;
54 |
55 | for (size_t i=1; i=1 && dists[j]
83 | void compute_ground_truth(const Matrix& dataset, const Matrix& testset, Matrix& matches,
84 | int skip=0, Distance d = Distance())
85 | {
86 | for (size_t i=0; i(dataset, testset[i], matches[i], (int)matches.cols, skip, d);
88 | }
89 | }
90 |
91 |
92 | }
93 |
94 | #endif //OPENCV_FLANN_GROUND_TRUTH_H_
95 |
--------------------------------------------------------------------------------
/include/opencv2/flann/heap.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | #ifndef OPENCV_FLANN_HEAP_H_
32 | #define OPENCV_FLANN_HEAP_H_
33 |
34 | #include
35 | #include
36 |
37 | namespace cvflann
38 | {
39 |
40 | /**
41 | * Priority Queue Implementation
42 | *
43 | * The priority queue is implemented with a heap. A heap is a complete
44 | * (full) binary tree in which each parent is less than both of its
45 | * children, but the order of the children is unspecified.
46 | */
47 | template
48 | class Heap
49 | {
50 |
51 | /**
52 | * Storage array for the heap.
53 | * Type T must be comparable.
54 | */
55 | std::vector heap;
56 | int length;
57 |
58 | /**
59 | * Number of element in the heap
60 | */
61 | int count;
62 |
63 |
64 |
65 | public:
66 | /**
67 | * Constructor.
68 | *
69 | * Params:
70 | * sz = heap size
71 | */
72 |
73 | Heap(int sz)
74 | {
75 | length = sz;
76 | heap.reserve(length);
77 | count = 0;
78 | }
79 |
80 | /**
81 | *
82 | * Returns: heap size
83 | */
84 | int size()
85 | {
86 | return count;
87 | }
88 |
89 | /**
90 | * Tests if the heap is empty
91 | *
92 | * Returns: true is heap empty, false otherwise
93 | */
94 | bool empty()
95 | {
96 | return size()==0;
97 | }
98 |
99 | /**
100 | * Clears the heap.
101 | */
102 | void clear()
103 | {
104 | heap.clear();
105 | count = 0;
106 | }
107 |
108 | struct CompareT
109 | {
110 | bool operator()(const T& t_1, const T& t_2) const
111 | {
112 | return t_2 < t_1;
113 | }
114 | };
115 |
116 | /**
117 | * Insert a new element in the heap.
118 | *
119 | * We select the next empty leaf node, and then keep moving any larger
120 | * parents down until the right location is found to store this element.
121 | *
122 | * Params:
123 | * value = the new element to be inserted in the heap
124 | */
125 | void insert(T value)
126 | {
127 | /* If heap is full, then return without adding this element. */
128 | if (count == length) {
129 | return;
130 | }
131 |
132 | heap.push_back(value);
133 | static CompareT compareT;
134 | std::push_heap(heap.begin(), heap.end(), compareT);
135 | ++count;
136 | }
137 |
138 |
139 |
140 | /**
141 | * Returns the node of minimum value from the heap (top of the heap).
142 | *
143 | * Params:
144 | * value = out parameter used to return the min element
145 | * Returns: false if heap empty
146 | */
147 | bool popMin(T& value)
148 | {
149 | if (count == 0) {
150 | return false;
151 | }
152 |
153 | value = heap[0];
154 | static CompareT compareT;
155 | std::pop_heap(heap.begin(), heap.end(), compareT);
156 | heap.pop_back();
157 | --count;
158 |
159 | return true; /* Return old last node. */
160 | }
161 | };
162 |
163 | }
164 |
165 | #endif //OPENCV_FLANN_HEAP_H_
166 |
--------------------------------------------------------------------------------
/include/opencv2/flann/linear_index.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | #ifndef OPENCV_FLANN_LINEAR_INDEX_H_
32 | #define OPENCV_FLANN_LINEAR_INDEX_H_
33 |
34 | #include "general.h"
35 | #include "nn_index.h"
36 |
37 | namespace cvflann
38 | {
39 |
40 | struct LinearIndexParams : public IndexParams
41 | {
42 | LinearIndexParams()
43 | {
44 | (* this)["algorithm"] = FLANN_INDEX_LINEAR;
45 | }
46 | };
47 |
48 | template
49 | class LinearIndex : public NNIndex
50 | {
51 | public:
52 |
53 | typedef typename Distance::ElementType ElementType;
54 | typedef typename Distance::ResultType DistanceType;
55 |
56 |
57 | LinearIndex(const Matrix& inputData, const IndexParams& params = LinearIndexParams(),
58 | Distance d = Distance()) :
59 | dataset_(inputData), index_params_(params), distance_(d)
60 | {
61 | }
62 |
63 | LinearIndex(const LinearIndex&);
64 | LinearIndex& operator=(const LinearIndex&);
65 |
66 | flann_algorithm_t getType() const
67 | {
68 | return FLANN_INDEX_LINEAR;
69 | }
70 |
71 |
72 | size_t size() const
73 | {
74 | return dataset_.rows;
75 | }
76 |
77 | size_t veclen() const
78 | {
79 | return dataset_.cols;
80 | }
81 |
82 |
83 | int usedMemory() const
84 | {
85 | return 0;
86 | }
87 |
88 | void buildIndex()
89 | {
90 | /* nothing to do here for linear search */
91 | }
92 |
93 | void saveIndex(FILE*)
94 | {
95 | /* nothing to do here for linear search */
96 | }
97 |
98 |
99 | void loadIndex(FILE*)
100 | {
101 | /* nothing to do here for linear search */
102 |
103 | index_params_["algorithm"] = getType();
104 | }
105 |
106 | void findNeighbors(ResultSet& resultSet, const ElementType* vec, const SearchParams& /*searchParams*/)
107 | {
108 | ElementType* data = dataset_.data;
109 | for (size_t i = 0; i < dataset_.rows; ++i, data += dataset_.cols) {
110 | DistanceType dist = distance_(data, vec, dataset_.cols);
111 | resultSet.addPoint(dist, (int)i);
112 | }
113 | }
114 |
115 | IndexParams getParameters() const
116 | {
117 | return index_params_;
118 | }
119 |
120 | private:
121 | /** The dataset */
122 | const Matrix dataset_;
123 | /** Index parameters */
124 | IndexParams index_params_;
125 | /** Index distance */
126 | Distance distance_;
127 |
128 | };
129 |
130 | }
131 |
132 | #endif // OPENCV_FLANN_LINEAR_INDEX_H_
133 |
--------------------------------------------------------------------------------
/include/opencv2/flann/logger.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | #ifndef OPENCV_FLANN_LOGGER_H
32 | #define OPENCV_FLANN_LOGGER_H
33 |
34 | #include
35 | #include
36 |
37 | #include "defines.h"
38 |
39 |
40 | namespace cvflann
41 | {
42 |
43 | class Logger
44 | {
45 | Logger() : stream(stdout), logLevel(FLANN_LOG_WARN) {}
46 |
47 | ~Logger()
48 | {
49 | if ((stream!=NULL)&&(stream!=stdout)) {
50 | fclose(stream);
51 | }
52 | }
53 |
54 | static Logger& instance()
55 | {
56 | static Logger logger;
57 | return logger;
58 | }
59 |
60 | void _setDestination(const char* name)
61 | {
62 | if (name==NULL) {
63 | stream = stdout;
64 | }
65 | else {
66 | stream = fopen(name,"w");
67 | if (stream == NULL) {
68 | stream = stdout;
69 | }
70 | }
71 | }
72 |
73 | int _log(int level, const char* fmt, va_list arglist)
74 | {
75 | if (level > logLevel ) return -1;
76 | int ret = vfprintf(stream, fmt, arglist);
77 | return ret;
78 | }
79 |
80 | public:
81 | /**
82 | * Sets the logging level. All messages with lower priority will be ignored.
83 | * @param level Logging level
84 | */
85 | static void setLevel(int level) { instance().logLevel = level; }
86 |
87 | /**
88 | * Sets the logging destination
89 | * @param name Filename or NULL for console
90 | */
91 | static void setDestination(const char* name) { instance()._setDestination(name); }
92 |
93 | /**
94 | * Print log message
95 | * @param level Log level
96 | * @param fmt Message format
97 | * @return
98 | */
99 | static int log(int level, const char* fmt, ...)
100 | {
101 | va_list arglist;
102 | va_start(arglist, fmt);
103 | int ret = instance()._log(level,fmt,arglist);
104 | va_end(arglist);
105 | return ret;
106 | }
107 |
108 | #define LOG_METHOD(NAME,LEVEL) \
109 | static int NAME(const char* fmt, ...) \
110 | { \
111 | va_list ap; \
112 | va_start(ap, fmt); \
113 | int ret = instance()._log(LEVEL, fmt, ap); \
114 | va_end(ap); \
115 | return ret; \
116 | }
117 |
118 | LOG_METHOD(fatal, FLANN_LOG_FATAL)
119 | LOG_METHOD(error, FLANN_LOG_ERROR)
120 | LOG_METHOD(warn, FLANN_LOG_WARN)
121 | LOG_METHOD(info, FLANN_LOG_INFO)
122 |
123 | private:
124 | FILE* stream;
125 | int logLevel;
126 | };
127 |
128 | }
129 |
130 | #endif //OPENCV_FLANN_LOGGER_H
131 |
--------------------------------------------------------------------------------
/include/opencv2/flann/matrix.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | #ifndef OPENCV_FLANN_DATASET_H_
32 | #define OPENCV_FLANN_DATASET_H_
33 |
34 | #include
35 |
36 | #include "general.h"
37 |
38 | namespace cvflann
39 | {
40 |
41 | /**
42 | * Class that implements a simple rectangular matrix stored in a memory buffer and
43 | * provides convenient matrix-like access using the [] operators.
44 | */
45 | template
46 | class Matrix
47 | {
48 | public:
49 | typedef T type;
50 |
51 | size_t rows;
52 | size_t cols;
53 | size_t stride;
54 | T* data;
55 |
56 | Matrix() : rows(0), cols(0), stride(0), data(NULL)
57 | {
58 | }
59 |
60 | Matrix(T* data_, size_t rows_, size_t cols_, size_t stride_ = 0) :
61 | rows(rows_), cols(cols_), stride(stride_), data(data_)
62 | {
63 | if (stride==0) stride = cols;
64 | }
65 |
66 | /**
67 | * Convenience function for deallocating the storage data.
68 | */
69 | FLANN_DEPRECATED void free()
70 | {
71 | fprintf(stderr, "The cvflann::Matrix::free() method is deprecated "
72 | "and it does not do any memory deallocation any more. You are"
73 | "responsible for deallocating the matrix memory (by doing"
74 | "'delete[] matrix.data' for example)");
75 | }
76 |
77 | /**
78 | * Operator that return a (pointer to a) row of the data.
79 | */
80 | T* operator[](size_t index) const
81 | {
82 | return data+index*stride;
83 | }
84 | };
85 |
86 |
87 | class UntypedMatrix
88 | {
89 | public:
90 | size_t rows;
91 | size_t cols;
92 | void* data;
93 | flann_datatype_t type;
94 |
95 | UntypedMatrix(void* data_, long rows_, long cols_) :
96 | rows(rows_), cols(cols_), data(data_)
97 | {
98 | }
99 |
100 | ~UntypedMatrix()
101 | {
102 | }
103 |
104 |
105 | template
106 | Matrix as()
107 | {
108 | return Matrix((T*)data, rows, cols);
109 | }
110 | };
111 |
112 |
113 |
114 | }
115 |
116 | #endif //OPENCV_FLANN_DATASET_H_
117 |
--------------------------------------------------------------------------------
/include/opencv2/flann/object_factory.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | #ifndef OPENCV_FLANN_OBJECT_FACTORY_H_
32 | #define OPENCV_FLANN_OBJECT_FACTORY_H_
33 |
34 | #include
35 |
36 | namespace cvflann
37 | {
38 |
39 | class CreatorNotFound
40 | {
41 | };
42 |
43 | template
46 | class ObjectFactory
47 | {
48 | typedef ObjectFactory ThisClass;
49 | typedef std::map ObjectRegistry;
50 |
51 | // singleton class, private constructor
52 | ObjectFactory() {}
53 |
54 | public:
55 |
56 | bool subscribe(UniqueIdType id, ObjectCreator creator)
57 | {
58 | if (object_registry.find(id) != object_registry.end()) return false;
59 |
60 | object_registry[id] = creator;
61 | return true;
62 | }
63 |
64 | bool unregister(UniqueIdType id)
65 | {
66 | return object_registry.erase(id) == 1;
67 | }
68 |
69 | ObjectCreator create(UniqueIdType id)
70 | {
71 | typename ObjectRegistry::const_iterator iter = object_registry.find(id);
72 |
73 | if (iter == object_registry.end()) {
74 | throw CreatorNotFound();
75 | }
76 |
77 | return iter->second;
78 | }
79 |
80 | static ThisClass& instance()
81 | {
82 | static ThisClass the_factory;
83 | return the_factory;
84 | }
85 | private:
86 | ObjectRegistry object_registry;
87 | };
88 |
89 | }
90 |
91 | #endif /* OPENCV_FLANN_OBJECT_FACTORY_H_ */
92 |
--------------------------------------------------------------------------------
/include/opencv2/flann/params.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2011 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2011 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without
8 | * modification, are permitted provided that the following conditions
9 | * are met:
10 | *
11 | * 1. Redistributions of source code must retain the above copyright
12 | * notice, this list of conditions and the following disclaimer.
13 | * 2. Redistributions in binary form must reproduce the above copyright
14 | * notice, this list of conditions and the following disclaimer in the
15 | * documentation and/or other materials provided with the distribution.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | *************************************************************************/
28 |
29 |
30 | #ifndef OPENCV_FLANN_PARAMS_H_
31 | #define OPENCV_FLANN_PARAMS_H_
32 |
33 | #include "any.h"
34 | #include "general.h"
35 | #include
36 | #include
37 |
38 |
39 | namespace cvflann
40 | {
41 |
42 | typedef std::map IndexParams;
43 |
44 | struct SearchParams : public IndexParams
45 | {
46 | SearchParams(int checks = 32, float eps = 0, bool sorted = true )
47 | {
48 | // how many leafs to visit when searching for neighbours (-1 for unlimited)
49 | (*this)["checks"] = checks;
50 | // search for eps-approximate neighbours (default: 0)
51 | (*this)["eps"] = eps;
52 | // only for radius search, require neighbours sorted by distance (default: true)
53 | (*this)["sorted"] = sorted;
54 | }
55 | };
56 |
57 |
58 | template
59 | T get_param(const IndexParams& params, std::string name, const T& default_value)
60 | {
61 | IndexParams::const_iterator it = params.find(name);
62 | if (it != params.end()) {
63 | return it->second.cast();
64 | }
65 | else {
66 | return default_value;
67 | }
68 | }
69 |
70 | template
71 | T get_param(const IndexParams& params, std::string name)
72 | {
73 | IndexParams::const_iterator it = params.find(name);
74 | if (it != params.end()) {
75 | return it->second.cast();
76 | }
77 | else {
78 | throw FLANNException(std::string("Missing parameter '")+name+std::string("' in the parameters given"));
79 | }
80 | }
81 |
82 | inline void print_params(const IndexParams& params, std::ostream& stream)
83 | {
84 | IndexParams::const_iterator it;
85 |
86 | for(it=params.begin(); it!=params.end(); ++it) {
87 | stream << it->first << " : " << it->second << std::endl;
88 | }
89 | }
90 |
91 | inline void print_params(const IndexParams& params)
92 | {
93 | print_params(params, std::cout);
94 | }
95 |
96 | }
97 |
98 |
99 | #endif /* OPENCV_FLANN_PARAMS_H_ */
100 |
--------------------------------------------------------------------------------
/include/opencv2/flann/random.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * THE BSD LICENSE
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in the
17 | * documentation and/or other materials provided with the distribution.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | *************************************************************************/
30 |
31 | #ifndef OPENCV_FLANN_RANDOM_H
32 | #define OPENCV_FLANN_RANDOM_H
33 |
34 | #include
35 | #include
36 | #include
37 |
38 | #include "general.h"
39 |
40 | namespace cvflann
41 | {
42 |
43 | /**
44 | * Seeds the random number generator
45 | * @param seed Random seed
46 | */
47 | inline void seed_random(unsigned int seed)
48 | {
49 | srand(seed);
50 | }
51 |
52 | /*
53 | * Generates a random double value.
54 | */
55 | /**
56 | * Generates a random double value.
57 | * @param high Upper limit
58 | * @param low Lower limit
59 | * @return Random double value
60 | */
61 | inline double rand_double(double high = 1.0, double low = 0)
62 | {
63 | return low + ((high-low) * (std::rand() / (RAND_MAX + 1.0)));
64 | }
65 |
66 | /**
67 | * Generates a random integer value.
68 | * @param high Upper limit
69 | * @param low Lower limit
70 | * @return Random integer value
71 | */
72 | inline int rand_int(int high = RAND_MAX, int low = 0)
73 | {
74 | return low + (int) ( double(high-low) * (std::rand() / (RAND_MAX + 1.0)));
75 | }
76 |
77 | /**
78 | * Random number generator that returns a distinct number from
79 | * the [0,n) interval each time.
80 | */
81 | class UniqueRandom
82 | {
83 | std::vector vals_;
84 | int size_;
85 | int counter_;
86 |
87 | public:
88 | /**
89 | * Constructor.
90 | * @param n Size of the interval from which to generate
91 | * @return
92 | */
93 | UniqueRandom(int n)
94 | {
95 | init(n);
96 | }
97 |
98 | /**
99 | * Initializes the number generator.
100 | * @param n the size of the interval from which to generate random numbers.
101 | */
102 | void init(int n)
103 | {
104 | // create and initialize an array of size n
105 | vals_.resize(n);
106 | size_ = n;
107 | for (int i = 0; i < size_; ++i) vals_[i] = i;
108 |
109 | // shuffle the elements in the array
110 | std::random_shuffle(vals_.begin(), vals_.end());
111 |
112 | counter_ = 0;
113 | }
114 |
115 | /**
116 | * Return a distinct random integer in greater or equal to 0 and less
117 | * than 'n' on each call. It should be called maximum 'n' times.
118 | * Returns: a random integer
119 | */
120 | int next()
121 | {
122 | if (counter_ == size_) {
123 | return -1;
124 | }
125 | else {
126 | return vals_[counter_++];
127 | }
128 | }
129 | };
130 |
131 | }
132 |
133 | #endif //OPENCV_FLANN_RANDOM_H
134 |
--------------------------------------------------------------------------------
/include/opencv2/flann/sampling.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5 | * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without
8 | * modification, are permitted provided that the following conditions
9 | * are met:
10 | *
11 | * 1. Redistributions of source code must retain the above copyright
12 | * notice, this list of conditions and the following disclaimer.
13 | * 2. Redistributions in binary form must reproduce the above copyright
14 | * notice, this list of conditions and the following disclaimer in the
15 | * documentation and/or other materials provided with the distribution.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | *************************************************************************/
28 |
29 |
30 | #ifndef OPENCV_FLANN_SAMPLING_H_
31 | #define OPENCV_FLANN_SAMPLING_H_
32 |
33 | #include "matrix.h"
34 | #include "random.h"
35 |
36 | namespace cvflann
37 | {
38 |
39 | template
40 | Matrix random_sample(Matrix& srcMatrix, long size, bool remove = false)
41 | {
42 | Matrix newSet(new T[size * srcMatrix.cols], size,srcMatrix.cols);
43 |
44 | T* src,* dest;
45 | for (long i=0; i
63 | Matrix random_sample(const Matrix& srcMatrix, size_t size)
64 | {
65 | UniqueRandom rand((int)srcMatrix.rows);
66 | Matrix newSet(new T[size * srcMatrix.cols], size,srcMatrix.cols);
67 |
68 | T* src,* dest;
69 | for (size_t i=0; i
35 |
36 |
37 | namespace cvflann
38 | {
39 |
40 | /**
41 | * A start-stop timer class.
42 | *
43 | * Can be used to time portions of code.
44 | */
45 | class StartStopTimer
46 | {
47 | clock_t startTime;
48 |
49 | public:
50 | /**
51 | * Value of the timer.
52 | */
53 | double value;
54 |
55 |
56 | /**
57 | * Constructor.
58 | */
59 | StartStopTimer()
60 | {
61 | reset();
62 | }
63 |
64 | /**
65 | * Starts the timer.
66 | */
67 | void start()
68 | {
69 | startTime = clock();
70 | }
71 |
72 | /**
73 | * Stops the timer and updates timer value.
74 | */
75 | void stop()
76 | {
77 | clock_t stopTime = clock();
78 | value += ( (double)stopTime - startTime) / CLOCKS_PER_SEC;
79 | }
80 |
81 | /**
82 | * Resets the timer value to 0.
83 | */
84 | void reset()
85 | {
86 | value = 0;
87 | }
88 |
89 | };
90 |
91 | }
92 |
93 | #endif // FLANN_TIMER_H
94 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/common.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_COMMON_HPP__
44 | #define __OPENCV_GPU_COMMON_HPP__
45 |
46 | #include
47 | #include "opencv2/core/cuda_devptrs.hpp"
48 |
49 | #ifndef CV_PI
50 | #define CV_PI 3.1415926535897932384626433832795
51 | #endif
52 |
53 | #ifndef CV_PI_F
54 | #ifndef CV_PI
55 | #define CV_PI_F 3.14159265f
56 | #else
57 | #define CV_PI_F ((float)CV_PI)
58 | #endif
59 | #endif
60 |
61 | #if defined(__GNUC__)
62 | #define cudaSafeCall(expr) ___cudaSafeCall(expr, __FILE__, __LINE__, __func__)
63 | #else /* defined(__CUDACC__) || defined(__MSVC__) */
64 | #define cudaSafeCall(expr) ___cudaSafeCall(expr, __FILE__, __LINE__)
65 | #endif
66 |
67 | namespace cv { namespace gpu
68 | {
69 | void error(const char *error_string, const char *file, const int line, const char *func);
70 |
71 | template static inline bool isAligned(const T* ptr, size_t size)
72 | {
73 | return reinterpret_cast(ptr) % size == 0;
74 | }
75 |
76 | static inline bool isAligned(size_t step, size_t size)
77 | {
78 | return step % size == 0;
79 | }
80 | }}
81 |
82 | static inline void ___cudaSafeCall(cudaError_t err, const char *file, const int line, const char *func = "")
83 | {
84 | if (cudaSuccess != err)
85 | cv::gpu::error(cudaGetErrorString(err), file, line, func);
86 | }
87 |
88 | namespace cv { namespace gpu
89 | {
90 | __host__ __device__ __forceinline__ int divUp(int total, int grain)
91 | {
92 | return (total + grain - 1) / grain;
93 | }
94 |
95 | namespace device
96 | {
97 | using cv::gpu::divUp;
98 |
99 | #ifdef __CUDACC__
100 | typedef unsigned char uchar;
101 | typedef unsigned short ushort;
102 | typedef signed char schar;
103 | #if defined (_WIN32) || defined (__APPLE__)
104 | typedef unsigned int uint;
105 | #endif
106 |
107 | template inline void bindTexture(const textureReference* tex, const PtrStepSz& img)
108 | {
109 | cudaChannelFormatDesc desc = cudaCreateChannelDesc();
110 | cudaSafeCall( cudaBindTexture2D(0, tex, img.ptr(), &desc, img.cols, img.rows, img.step) );
111 | }
112 | #endif // __CUDACC__
113 | }
114 | }}
115 |
116 |
117 |
118 | #endif // __OPENCV_GPU_COMMON_HPP__
119 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/datamov_utils.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_DATAMOV_UTILS_HPP__
44 | #define __OPENCV_GPU_DATAMOV_UTILS_HPP__
45 |
46 | #include "common.hpp"
47 |
48 | namespace cv { namespace gpu { namespace device
49 | {
50 | #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 200
51 |
52 | // for Fermi memory space is detected automatically
53 | template struct ForceGlob
54 | {
55 | __device__ __forceinline__ static void Load(const T* ptr, int offset, T& val) { val = ptr[offset]; }
56 | };
57 |
58 | #else // __CUDA_ARCH__ >= 200
59 |
60 | #if defined(_WIN64) || defined(__LP64__)
61 | // 64-bit register modifier for inlined asm
62 | #define OPENCV_GPU_ASM_PTR "l"
63 | #else
64 | // 32-bit register modifier for inlined asm
65 | #define OPENCV_GPU_ASM_PTR "r"
66 | #endif
67 |
68 | template struct ForceGlob;
69 |
70 | #define OPENCV_GPU_DEFINE_FORCE_GLOB(base_type, ptx_type, reg_mod) \
71 | template <> struct ForceGlob \
72 | { \
73 | __device__ __forceinline__ static void Load(const base_type* ptr, int offset, base_type& val) \
74 | { \
75 | asm("ld.global."#ptx_type" %0, [%1];" : "="#reg_mod(val) : OPENCV_GPU_ASM_PTR(ptr + offset)); \
76 | } \
77 | };
78 |
79 | #define OPENCV_GPU_DEFINE_FORCE_GLOB_B(base_type, ptx_type) \
80 | template <> struct ForceGlob \
81 | { \
82 | __device__ __forceinline__ static void Load(const base_type* ptr, int offset, base_type& val) \
83 | { \
84 | asm("ld.global."#ptx_type" %0, [%1];" : "=r"(*reinterpret_cast(&val)) : OPENCV_GPU_ASM_PTR(ptr + offset)); \
85 | } \
86 | };
87 |
88 | OPENCV_GPU_DEFINE_FORCE_GLOB_B(uchar, u8)
89 | OPENCV_GPU_DEFINE_FORCE_GLOB_B(schar, s8)
90 | OPENCV_GPU_DEFINE_FORCE_GLOB_B(char, b8)
91 | OPENCV_GPU_DEFINE_FORCE_GLOB (ushort, u16, h)
92 | OPENCV_GPU_DEFINE_FORCE_GLOB (short, s16, h)
93 | OPENCV_GPU_DEFINE_FORCE_GLOB (uint, u32, r)
94 | OPENCV_GPU_DEFINE_FORCE_GLOB (int, s32, r)
95 | OPENCV_GPU_DEFINE_FORCE_GLOB (float, f32, f)
96 | OPENCV_GPU_DEFINE_FORCE_GLOB (double, f64, d)
97 |
98 | #undef OPENCV_GPU_DEFINE_FORCE_GLOB
99 | #undef OPENCV_GPU_DEFINE_FORCE_GLOB_B
100 | #undef OPENCV_GPU_ASM_PTR
101 |
102 | #endif // __CUDA_ARCH__ >= 200
103 | }}} // namespace cv { namespace gpu { namespace device
104 |
105 | #endif // __OPENCV_GPU_DATAMOV_UTILS_HPP__
106 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/dynamic_smem.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_DYNAMIC_SMEM_HPP__
44 | #define __OPENCV_GPU_DYNAMIC_SMEM_HPP__
45 |
46 | namespace cv { namespace gpu { namespace device
47 | {
48 | template struct DynamicSharedMem
49 | {
50 | __device__ __forceinline__ operator T*()
51 | {
52 | extern __shared__ int __smem[];
53 | return (T*)__smem;
54 | }
55 |
56 | __device__ __forceinline__ operator const T*() const
57 | {
58 | extern __shared__ int __smem[];
59 | return (T*)__smem;
60 | }
61 | };
62 |
63 | // specialize for double to avoid unaligned memory access compile errors
64 | template<> struct DynamicSharedMem
65 | {
66 | __device__ __forceinline__ operator double*()
67 | {
68 | extern __shared__ double __smem_d[];
69 | return (double*)__smem_d;
70 | }
71 |
72 | __device__ __forceinline__ operator const double*() const
73 | {
74 | extern __shared__ double __smem_d[];
75 | return (double*)__smem_d;
76 | }
77 | };
78 | }}}
79 |
80 | #endif // __OPENCV_GPU_DYNAMIC_SMEM_HPP__
81 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/funcattrib.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_DEVICE_FUNCATTRIB_HPP_
44 | #define __OPENCV_GPU_DEVICE_FUNCATTRIB_HPP_
45 |
46 | #include
47 |
48 | namespace cv { namespace gpu { namespace device
49 | {
50 | template
51 | void printFuncAttrib(Func& func)
52 | {
53 |
54 | cudaFuncAttributes attrs;
55 | cudaFuncGetAttributes(&attrs, func);
56 |
57 | printf("=== Function stats ===\n");
58 | printf("Name: \n");
59 | printf("sharedSizeBytes = %d\n", attrs.sharedSizeBytes);
60 | printf("constSizeBytes = %d\n", attrs.constSizeBytes);
61 | printf("localSizeBytes = %d\n", attrs.localSizeBytes);
62 | printf("maxThreadsPerBlock = %d\n", attrs.maxThreadsPerBlock);
63 | printf("numRegs = %d\n", attrs.numRegs);
64 | printf("ptxVersion = %d\n", attrs.ptxVersion);
65 | printf("binaryVersion = %d\n", attrs.binaryVersion);
66 | printf("\n");
67 | fflush(stdout);
68 | }
69 | }}} // namespace cv { namespace gpu { namespace device
70 |
71 | #endif /* __OPENCV_GPU_DEVICE_FUNCATTRIB_HPP_ */
72 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/limits.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_LIMITS_GPU_HPP__
44 | #define __OPENCV_GPU_LIMITS_GPU_HPP__
45 |
46 | #include
47 | #include
48 | #include "common.hpp"
49 |
50 | namespace cv { namespace gpu { namespace device
51 | {
52 |
53 | template struct numeric_limits;
54 |
55 | template <> struct numeric_limits
56 | {
57 | __device__ __forceinline__ static bool min() { return false; }
58 | __device__ __forceinline__ static bool max() { return true; }
59 | static const bool is_signed = false;
60 | };
61 |
62 | template <> struct numeric_limits
63 | {
64 | __device__ __forceinline__ static signed char min() { return SCHAR_MIN; }
65 | __device__ __forceinline__ static signed char max() { return SCHAR_MAX; }
66 | static const bool is_signed = true;
67 | };
68 |
69 | template <> struct numeric_limits
70 | {
71 | __device__ __forceinline__ static unsigned char min() { return 0; }
72 | __device__ __forceinline__ static unsigned char max() { return UCHAR_MAX; }
73 | static const bool is_signed = false;
74 | };
75 |
76 | template <> struct numeric_limits
77 | {
78 | __device__ __forceinline__ static short min() { return SHRT_MIN; }
79 | __device__ __forceinline__ static short max() { return SHRT_MAX; }
80 | static const bool is_signed = true;
81 | };
82 |
83 | template <> struct numeric_limits
84 | {
85 | __device__ __forceinline__ static unsigned short min() { return 0; }
86 | __device__ __forceinline__ static unsigned short max() { return USHRT_MAX; }
87 | static const bool is_signed = false;
88 | };
89 |
90 | template <> struct numeric_limits
91 | {
92 | __device__ __forceinline__ static int min() { return INT_MIN; }
93 | __device__ __forceinline__ static int max() { return INT_MAX; }
94 | static const bool is_signed = true;
95 | };
96 |
97 | template <> struct numeric_limits
98 | {
99 | __device__ __forceinline__ static unsigned int min() { return 0; }
100 | __device__ __forceinline__ static unsigned int max() { return UINT_MAX; }
101 | static const bool is_signed = false;
102 | };
103 |
104 | template <> struct numeric_limits
105 | {
106 | __device__ __forceinline__ static float min() { return FLT_MIN; }
107 | __device__ __forceinline__ static float max() { return FLT_MAX; }
108 | __device__ __forceinline__ static float epsilon() { return FLT_EPSILON; }
109 | static const bool is_signed = true;
110 | };
111 |
112 | template <> struct numeric_limits
113 | {
114 | __device__ __forceinline__ static double min() { return DBL_MIN; }
115 | __device__ __forceinline__ static double max() { return DBL_MAX; }
116 | __device__ __forceinline__ static double epsilon() { return DBL_EPSILON; }
117 | static const bool is_signed = true;
118 | };
119 |
120 | }}} // namespace cv { namespace gpu { namespace device {
121 |
122 | #endif // __OPENCV_GPU_LIMITS_GPU_HPP__
123 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/static_check.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_GPU_DEVICE_STATIC_CHECK_HPP__
44 | #define __OPENCV_GPU_GPU_DEVICE_STATIC_CHECK_HPP__
45 |
46 | #if defined(__CUDACC__)
47 | #define __OPENCV_GPU_HOST_DEVICE__ __host__ __device__ __forceinline__
48 | #else
49 | #define __OPENCV_GPU_HOST_DEVICE__
50 | #endif
51 |
52 | namespace cv { namespace gpu
53 | {
54 | namespace device
55 | {
56 | template struct Static {};
57 |
58 | template<> struct Static
59 | {
60 | __OPENCV_GPU_HOST_DEVICE__ static void check() {};
61 | };
62 | }
63 | }}
64 |
65 | #undef __OPENCV_GPU_HOST_DEVICE__
66 |
67 | #endif /* __OPENCV_GPU_GPU_DEVICE_STATIC_CHECK_HPP__ */
68 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/transform.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_TRANSFORM_HPP__
44 | #define __OPENCV_GPU_TRANSFORM_HPP__
45 |
46 | #include "common.hpp"
47 | #include "utility.hpp"
48 | #include "detail/transform_detail.hpp"
49 |
50 | namespace cv { namespace gpu { namespace device
51 | {
52 | template
53 | static inline void transform(PtrStepSz src, PtrStepSz dst, UnOp op, const Mask& mask, cudaStream_t stream)
54 | {
55 | typedef TransformFunctorTraits ft;
56 | transform_detail::TransformDispatcher::cn == 1 && VecTraits::cn == 1 && ft::smart_shift != 1>::call(src, dst, op, mask, stream);
57 | }
58 |
59 | template
60 | static inline void transform(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, BinOp op, const Mask& mask, cudaStream_t stream)
61 | {
62 | typedef TransformFunctorTraits ft;
63 | transform_detail::TransformDispatcher::cn == 1 && VecTraits::cn == 1 && VecTraits::cn == 1 && ft::smart_shift != 1>::call(src1, src2, dst, op, mask, stream);
64 | }
65 | }}}
66 |
67 | #endif // __OPENCV_GPU_TRANSFORM_HPP__
68 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/type_traits.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_TYPE_TRAITS_HPP__
44 | #define __OPENCV_GPU_TYPE_TRAITS_HPP__
45 |
46 | #include "detail/type_traits_detail.hpp"
47 |
48 | namespace cv { namespace gpu { namespace device
49 | {
50 | template struct IsSimpleParameter
51 | {
52 | enum {value = type_traits_detail::IsIntegral::value || type_traits_detail::IsFloat::value ||
53 | type_traits_detail::PointerTraits::type>::value};
54 | };
55 |
56 | template struct TypeTraits
57 | {
58 | typedef typename type_traits_detail::UnConst::type NonConstType;
59 | typedef typename type_traits_detail::UnVolatile::type NonVolatileType;
60 | typedef typename type_traits_detail::UnVolatile::type>::type UnqualifiedType;
61 | typedef typename type_traits_detail::PointerTraits::type PointeeType;
62 | typedef typename type_traits_detail::ReferenceTraits::type ReferredType;
63 |
64 | enum { isConst = type_traits_detail::UnConst::value };
65 | enum { isVolatile = type_traits_detail::UnVolatile::value };
66 |
67 | enum { isReference = type_traits_detail::ReferenceTraits::value };
68 | enum { isPointer = type_traits_detail::PointerTraits::type>::value };
69 |
70 | enum { isUnsignedInt = type_traits_detail::IsUnsignedIntegral::value };
71 | enum { isSignedInt = type_traits_detail::IsSignedIntergral::value };
72 | enum { isIntegral = type_traits_detail::IsIntegral::value };
73 | enum { isFloat = type_traits_detail::IsFloat::value };
74 | enum { isArith = isIntegral || isFloat };
75 | enum { isVec = type_traits_detail::IsVec::value };
76 |
77 | typedef typename type_traits_detail::Select::value,
78 | T, typename type_traits_detail::AddParameterType::type>::type ParameterType;
79 | };
80 | }}}
81 |
82 | #endif // __OPENCV_GPU_TYPE_TRAITS_HPP__
83 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/device/warp_reduce.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef OPENCV_GPU_WARP_REDUCE_HPP__
44 | #define OPENCV_GPU_WARP_REDUCE_HPP__
45 |
46 | namespace cv { namespace gpu { namespace device
47 | {
48 | template
49 | __device__ __forceinline__ T warp_reduce(volatile T *ptr , const unsigned int tid = threadIdx.x)
50 | {
51 | const unsigned int lane = tid & 31; // index of thread in warp (0..31)
52 |
53 | if (lane < 16)
54 | {
55 | T partial = ptr[tid];
56 |
57 | ptr[tid] = partial = partial + ptr[tid + 16];
58 | ptr[tid] = partial = partial + ptr[tid + 8];
59 | ptr[tid] = partial = partial + ptr[tid + 4];
60 | ptr[tid] = partial = partial + ptr[tid + 2];
61 | ptr[tid] = partial = partial + ptr[tid + 1];
62 | }
63 |
64 | return ptr[tid - lane];
65 | }
66 | }}} // namespace cv { namespace gpu { namespace device {
67 |
68 | #endif /* OPENCV_GPU_WARP_REDUCE_HPP__ */
69 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/devmem2d.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #include "opencv2/core/cuda_devptrs.hpp"
44 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/gpumat.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #include "opencv2/core/gpumat.hpp"
44 |
--------------------------------------------------------------------------------
/include/opencv2/gpu/stream_accessor.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_STREAM_ACCESSOR_HPP__
44 | #define __OPENCV_GPU_STREAM_ACCESSOR_HPP__
45 |
46 | #include "opencv2/gpu/gpu.hpp"
47 | #include "cuda_runtime_api.h"
48 |
49 | namespace cv
50 | {
51 | namespace gpu
52 | {
53 | // This is only header file that depends on Cuda. All other headers are independent.
54 | // So if you use OpenCV binaries you do noot need to install Cuda Toolkit.
55 | // But of you wanna use GPU by yourself, may get cuda stream instance using the class below.
56 | // In this case you have to install Cuda Toolkit.
57 | struct StreamAccessor
58 | {
59 | CV_EXPORTS static cudaStream_t getStream(const Stream& stream);
60 | };
61 | }
62 | }
63 |
64 | #endif /* __OPENCV_GPU_STREAM_ACCESSOR_HPP__ */
65 |
--------------------------------------------------------------------------------
/include/opencv2/highgui/ios.h:
--------------------------------------------------------------------------------
1 |
2 | /*M///////////////////////////////////////////////////////////////////////////////////////
3 | //
4 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
5 | //
6 | // By downloading, copying, installing or using the software you agree to this license.
7 | // If you do not agree to this license, do not download, install,
8 | // copy or use the software.
9 | //
10 | //
11 | // License Agreement
12 | // For Open Source Computer Vision Library
13 | //
14 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
15 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
16 | // Third party copyrights are property of their respective owners.
17 | //
18 | // Redistribution and use in source and binary forms, with or without modification,
19 | // are permitted provided that the following conditions are met:
20 | //
21 | // * Redistribution's of source code must retain the above copyright notice,
22 | // this list of conditions and the following disclaimer.
23 | //
24 | // * Redistribution's in binary form must reproduce the above copyright notice,
25 | // this list of conditions and the following disclaimer in the documentation
26 | // and/or other materials provided with the distribution.
27 | //
28 | // * The name of the copyright holders may not be used to endorse or promote products
29 | // derived from this software without specific prior written permission.
30 | //
31 | // This software is provided by the copyright holders and contributors "as is" and
32 | // any express or implied warranties, including, but not limited to, the implied
33 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
34 | // In no event shall the Intel Corporation or contributors be liable for any direct,
35 | // indirect, incidental, special, exemplary, or consequential damages
36 | // (including, but not limited to, procurement of substitute goods or services;
37 | // loss of use, data, or profits; or business interruption) however caused
38 | // and on any theory of liability, whether in contract, strict liability,
39 | // or tort (including negligence or otherwise) arising in any way out of
40 | // the use of this software, even if advised of the possibility of such damage.
41 | //
42 | //M*/
43 |
44 | #include "opencv2/core/core.hpp"
45 | #import "opencv2/highgui/cap_ios.h"
46 |
47 | UIImage* MatToUIImage(const cv::Mat& image);
48 | void UIImageToMat(const UIImage* image,
49 | cv::Mat& m, bool alphaExist = false);
50 |
--------------------------------------------------------------------------------
/include/opencv2/legacy/streams.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // Intel License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000, Intel Corporation, all rights reserved.
14 | // Third party copyrights are property of their respective owners.
15 | //
16 | // Redistribution and use in source and binary forms, with or without modification,
17 | // are permitted provided that the following conditions are met:
18 | //
19 | // * Redistribution's of source code must retain the above copyright notice,
20 | // this list of conditions and the following disclaimer.
21 | //
22 | // * Redistribution's in binary form must reproduce the above copyright notice,
23 | // this list of conditions and the following disclaimer in the documentation
24 | // and/or other materials provided with the distribution.
25 | //
26 | // * The name of Intel Corporation may not be used to endorse or promote products
27 | // derived from this software without specific prior written permission.
28 | //
29 | // This software is provided by the copyright holders and contributors "as is" and
30 | // any express or implied warranties, including, but not limited to, the implied
31 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
32 | // In no event shall the Intel Corporation or contributors be liable for any direct,
33 | // indirect, incidental, special, exemplary, or consequential damages
34 | // (including, but not limited to, procurement of substitute goods or services;
35 | // loss of use, data, or profits; or business interruption) however caused
36 | // and on any theory of liability, whether in contract, strict liability,
37 | // or tort (including negligence or otherwise) arising in any way out of
38 | // the use of this software, even if advised of the possibility of such damage.
39 | //
40 | //M*/
41 |
42 | #ifndef __OPENCV_CVSTREAMS_H__
43 | #define __OPENCV_CVSTREAMS_H__
44 |
45 | #ifdef WIN32
46 | #include /* !!! IF YOU'VE GOT AN ERROR HERE, PLEASE READ BELOW !!! */
47 | /***************** How to get Visual Studio understand streams.h ****************\
48 |
49 | You need DirectShow SDK that is now a part of Platform SDK
50 | (Windows Server 2003 SP1 SDK or later),
51 | and DirectX SDK (2006 April or later).
52 |
53 | 1. Download the Platform SDK from
54 | http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
55 | and DirectX SDK from msdn.microsoft.com/directx/
56 | (They are huge, but you can download it by parts).
57 | If it doesn't work for you, consider HighGUI that can capture video via VFW or MIL
58 |
59 | 2. Install Platform SDK together with DirectShow SDK.
60 | Install DirectX (with or without sample code).
61 |
62 | 3. Build baseclasses.
63 | See \samples\multimedia\directshow\readme.txt.
64 |
65 | 4. Copy the built libraries (called strmbase.lib and strmbasd.lib
66 | in Release and Debug versions, respectively) to
67 | \lib.
68 |
69 | 5. In Developer Studio add the following paths:
70 | \include
71 | \include
72 | \samples\multimedia\directshow\baseclasses
73 | to the includes' search path
74 | (at Tools->Options->Directories->Include files in case of Visual Studio 6.0,
75 | at Tools->Options->Projects and Solutions->VC++ Directories->Include files in case
76 | of Visual Studio 2005)
77 | Add
78 | \lib
79 | \lib
80 | to the libraries' search path (in the same dialog, ...->"Library files" page)
81 |
82 | NOTE: PUT THE ADDED LINES ON THE VERY TOP OF THE LISTS, OTHERWISE YOU MAY STILL GET
83 | COMPILER OR LINKER ERRORS. This is necessary, because Visual Studio
84 | may include older versions of the same headers and libraries.
85 |
86 | 6. Now you can build OpenCV DirectShow filters.
87 |
88 | \***********************************************************************************/
89 |
90 | #endif
91 |
92 | #endif
93 |
--------------------------------------------------------------------------------
/include/opencv2/nonfree/nonfree.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2012, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_NONFREE_HPP__
44 | #define __OPENCV_NONFREE_HPP__
45 |
46 | #include "opencv2/nonfree/features2d.hpp"
47 |
48 | namespace cv
49 | {
50 |
51 | CV_EXPORTS_W bool initModule_nonfree();
52 |
53 | }
54 |
55 | #endif
56 |
57 | /* End of file. */
58 |
--------------------------------------------------------------------------------
/include/opencv2/opencv.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2010, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_ALL_HPP__
44 | #define __OPENCV_ALL_HPP__
45 |
46 | #include "opencv2/core/core_c.h"
47 | #include "opencv2/core/core.hpp"
48 | #include "opencv2/flann/miniflann.hpp"
49 | #include "opencv2/imgproc/imgproc_c.h"
50 | #include "opencv2/imgproc/imgproc.hpp"
51 | #include "opencv2/photo/photo.hpp"
52 | #include "opencv2/video/video.hpp"
53 | #include "opencv2/features2d/features2d.hpp"
54 | #include "opencv2/objdetect/objdetect.hpp"
55 | #include "opencv2/calib3d/calib3d.hpp"
56 | #include "opencv2/ml/ml.hpp"
57 | #include "opencv2/highgui/highgui_c.h"
58 | #include "opencv2/highgui/highgui.hpp"
59 | #include "opencv2/contrib/contrib.hpp"
60 |
61 | #endif
62 |
--------------------------------------------------------------------------------
/include/opencv2/opencv_modules.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | * ** File generated automatically, do not modify **
3 | *
4 | * This file defines the list of modules available in current build configuration
5 | *
6 | *
7 | */
8 |
9 | #define HAVE_OPENCV_CALIB3D
10 | #define HAVE_OPENCV_CONTRIB
11 | #define HAVE_OPENCV_CORE
12 | #define HAVE_OPENCV_FEATURES2D
13 | #define HAVE_OPENCV_FLANN
14 | #define HAVE_OPENCV_GPU
15 | #define HAVE_OPENCV_HIGHGUI
16 | #define HAVE_OPENCV_IMGPROC
17 | #define HAVE_OPENCV_LEGACY
18 | #define HAVE_OPENCV_ML
19 | #define HAVE_OPENCV_NONFREE
20 | #define HAVE_OPENCV_OBJDETECT
21 | #define HAVE_OPENCV_OCL
22 | #define HAVE_OPENCV_PHOTO
23 | #define HAVE_OPENCV_STITCHING
24 | #define HAVE_OPENCV_SUPERRES
25 | #define HAVE_OPENCV_TS
26 | #define HAVE_OPENCV_VIDEO
27 | #define HAVE_OPENCV_VIDEOSTAB
28 |
29 |
30 |
--------------------------------------------------------------------------------
/include/opencv2/photo/photo.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_PHOTO_HPP__
44 | #define __OPENCV_PHOTO_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 | #include "opencv2/imgproc/imgproc.hpp"
48 |
49 | #include "opencv2/photo/photo_c.h"
50 |
51 | #ifdef __cplusplus
52 |
53 | /*! \namespace cv
54 | Namespace where all the C++ OpenCV functionality resides
55 | */
56 | namespace cv
57 | {
58 |
59 | //! the inpainting algorithm
60 | enum
61 | {
62 | INPAINT_NS=CV_INPAINT_NS, // Navier-Stokes algorithm
63 | INPAINT_TELEA=CV_INPAINT_TELEA // A. Telea algorithm
64 | };
65 |
66 | //! restores the damaged image areas using one of the available intpainting algorithms
67 | CV_EXPORTS_W void inpaint( InputArray src, InputArray inpaintMask,
68 | OutputArray dst, double inpaintRadius, int flags );
69 |
70 |
71 | CV_EXPORTS_W void fastNlMeansDenoising( InputArray src, OutputArray dst, float h = 3,
72 | int templateWindowSize = 7, int searchWindowSize = 21);
73 |
74 | CV_EXPORTS_W void fastNlMeansDenoisingColored( InputArray src, OutputArray dst,
75 | float h = 3, float hColor = 3,
76 | int templateWindowSize = 7, int searchWindowSize = 21);
77 |
78 | CV_EXPORTS_W void fastNlMeansDenoisingMulti( InputArrayOfArrays srcImgs, OutputArray dst,
79 | int imgToDenoiseIndex, int temporalWindowSize,
80 | float h = 3, int templateWindowSize = 7, int searchWindowSize = 21);
81 |
82 | CV_EXPORTS_W void fastNlMeansDenoisingColoredMulti( InputArrayOfArrays srcImgs, OutputArray dst,
83 | int imgToDenoiseIndex, int temporalWindowSize,
84 | float h = 3, float hColor = 3,
85 | int templateWindowSize = 7, int searchWindowSize = 21);
86 |
87 | }
88 |
89 | #endif //__cplusplus
90 |
91 | #endif
92 |
--------------------------------------------------------------------------------
/include/opencv2/photo/photo_c.h:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_PHOTO_C_H__
44 | #define __OPENCV_PHOTO_C_H__
45 |
46 | #include "opencv2/core/core_c.h"
47 |
48 | #ifdef __cplusplus
49 | extern "C" {
50 | #endif
51 |
52 | /* Inpainting algorithms */
53 | enum
54 | {
55 | CV_INPAINT_NS =0,
56 | CV_INPAINT_TELEA =1
57 | };
58 |
59 |
60 | /* Inpaints the selected region in the image */
61 | CVAPI(void) cvInpaint( const CvArr* src, const CvArr* inpaint_mask,
62 | CvArr* dst, double inpaintRange, int flags );
63 |
64 |
65 | #ifdef __cplusplus
66 | } //extern "C"
67 | #endif
68 |
69 | #endif //__OPENCV_PHOTO_C_H__
70 |
--------------------------------------------------------------------------------
/include/opencv2/stitching/detail/autocalib.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_STITCHING_AUTOCALIB_HPP__
44 | #define __OPENCV_STITCHING_AUTOCALIB_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 | #include "matchers.hpp"
48 |
49 | namespace cv {
50 | namespace detail {
51 |
52 | // See "Construction of Panoramic Image Mosaics with Global and Local Alignment"
53 | // by Heung-Yeung Shum and Richard Szeliski.
54 | void CV_EXPORTS focalsFromHomography(const Mat &H, double &f0, double &f1, bool &f0_ok, bool &f1_ok);
55 |
56 | void CV_EXPORTS estimateFocal(const std::vector &features,
57 | const std::vector &pairwise_matches,
58 | std::vector &focals);
59 |
60 | bool CV_EXPORTS calibrateRotatingCamera(const std::vector &Hs, Mat &K);
61 |
62 | } // namespace detail
63 | } // namespace cv
64 |
65 | #endif // __OPENCV_STITCHING_AUTOCALIB_HPP__
66 |
--------------------------------------------------------------------------------
/include/opencv2/stitching/detail/camera.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_STITCHING_CAMERA_HPP__
44 | #define __OPENCV_STITCHING_CAMERA_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 |
48 | namespace cv {
49 | namespace detail {
50 |
51 | struct CV_EXPORTS CameraParams
52 | {
53 | CameraParams();
54 | CameraParams(const CameraParams& other);
55 | const CameraParams& operator =(const CameraParams& other);
56 | Mat K() const;
57 |
58 | double focal; // Focal length
59 | double aspect; // Aspect ratio
60 | double ppx; // Principal point X
61 | double ppy; // Principal point Y
62 | Mat R; // Rotation
63 | Mat t; // Translation
64 | };
65 |
66 | } // namespace detail
67 | } // namespace cv
68 |
69 | #endif // #ifndef __OPENCV_STITCHING_CAMERA_HPP__
70 |
--------------------------------------------------------------------------------
/include/opencv2/stitching/detail/exposure_compensate.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP__
44 | #define __OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 |
48 | namespace cv {
49 | namespace detail {
50 |
51 | class CV_EXPORTS ExposureCompensator
52 | {
53 | public:
54 | virtual ~ExposureCompensator() {}
55 |
56 | enum { NO, GAIN, GAIN_BLOCKS };
57 | static Ptr createDefault(int type);
58 |
59 | void feed(const std::vector &corners, const std::vector &images,
60 | const std::vector &masks);
61 | virtual void feed(const std::vector &corners, const std::vector &images,
62 | const std::vector > &masks) = 0;
63 | virtual void apply(int index, Point corner, Mat &image, const Mat &mask) = 0;
64 | };
65 |
66 |
67 | class CV_EXPORTS NoExposureCompensator : public ExposureCompensator
68 | {
69 | public:
70 | void feed(const std::vector &/*corners*/, const std::vector &/*images*/,
71 | const std::vector > &/*masks*/) {};
72 | void apply(int /*index*/, Point /*corner*/, Mat &/*image*/, const Mat &/*mask*/) {};
73 | };
74 |
75 |
76 | class CV_EXPORTS GainCompensator : public ExposureCompensator
77 | {
78 | public:
79 | void feed(const std::vector &corners, const std::vector &images,
80 | const std::vector > &masks);
81 | void apply(int index, Point corner, Mat &image, const Mat &mask);
82 | std::vector gains() const;
83 |
84 | private:
85 | Mat_ gains_;
86 | };
87 |
88 |
89 | class CV_EXPORTS BlocksGainCompensator : public ExposureCompensator
90 | {
91 | public:
92 | BlocksGainCompensator(int bl_width = 32, int bl_height = 32)
93 | : bl_width_(bl_width), bl_height_(bl_height) {}
94 | void feed(const std::vector &corners, const std::vector &images,
95 | const std::vector > &masks);
96 | void apply(int index, Point corner, Mat &image, const Mat &mask);
97 |
98 | private:
99 | int bl_width_, bl_height_;
100 | std::vector > gain_maps_;
101 | };
102 |
103 | } // namespace detail
104 | } // namespace cv
105 |
106 | #endif // __OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP__
107 |
--------------------------------------------------------------------------------
/include/opencv2/stitching/detail/util_inl.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_STITCHING_UTIL_INL_HPP__
44 | #define __OPENCV_STITCHING_UTIL_INL_HPP__
45 |
46 | #include
47 | #include "opencv2/core/core.hpp"
48 | #include "util.hpp" // Make your IDE see declarations
49 |
50 | namespace cv {
51 | namespace detail {
52 |
53 | template
54 | B Graph::forEach(B body) const
55 | {
56 | for (int i = 0; i < numVertices(); ++i)
57 | {
58 | std::list::const_iterator edge = edges_[i].begin();
59 | for (; edge != edges_[i].end(); ++edge)
60 | body(*edge);
61 | }
62 | return body;
63 | }
64 |
65 |
66 | template
67 | B Graph::walkBreadthFirst(int from, B body) const
68 | {
69 | std::vector was(numVertices(), false);
70 | std::queue vertices;
71 |
72 | was[from] = true;
73 | vertices.push(from);
74 |
75 | while (!vertices.empty())
76 | {
77 | int vertex = vertices.front();
78 | vertices.pop();
79 |
80 | std::list::const_iterator edge = edges_[vertex].begin();
81 | for (; edge != edges_[vertex].end(); ++edge)
82 | {
83 | if (!was[edge->to])
84 | {
85 | body(*edge);
86 | was[edge->to] = true;
87 | vertices.push(edge->to);
88 | }
89 | }
90 | }
91 |
92 | return body;
93 | }
94 |
95 |
96 | //////////////////////////////////////////////////////////////////////////////
97 | // Some auxiliary math functions
98 |
99 | static inline
100 | float normL2(const Point3f& a)
101 | {
102 | return a.x * a.x + a.y * a.y + a.z * a.z;
103 | }
104 |
105 |
106 | static inline
107 | float normL2(const Point3f& a, const Point3f& b)
108 | {
109 | return normL2(a - b);
110 | }
111 |
112 |
113 | static inline
114 | double normL2sq(const Mat &r)
115 | {
116 | return r.dot(r);
117 | }
118 |
119 |
120 | static inline int sqr(int x) { return x * x; }
121 | static inline float sqr(float x) { return x * x; }
122 | static inline double sqr(double x) { return x * x; }
123 |
124 | } // namespace detail
125 | } // namespace cv
126 |
127 | #endif // __OPENCV_STITCHING_UTIL_INL_HPP__
128 |
--------------------------------------------------------------------------------
/include/opencv2/superres/optical_flow.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_SUPERRES_OPTICAL_FLOW_HPP__
44 | #define __OPENCV_SUPERRES_OPTICAL_FLOW_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 |
48 | namespace cv
49 | {
50 | namespace superres
51 | {
52 | class CV_EXPORTS DenseOpticalFlowExt : public cv::Algorithm
53 | {
54 | public:
55 | virtual void calc(InputArray frame0, InputArray frame1, OutputArray flow1, OutputArray flow2 = noArray()) = 0;
56 | virtual void collectGarbage() = 0;
57 | };
58 |
59 | CV_EXPORTS Ptr createOptFlow_Farneback();
60 | CV_EXPORTS Ptr createOptFlow_Farneback_GPU();
61 | CV_EXPORTS Ptr createOptFlow_Farneback_OCL();
62 |
63 | CV_EXPORTS Ptr createOptFlow_Simple();
64 |
65 | CV_EXPORTS Ptr createOptFlow_DualTVL1();
66 | CV_EXPORTS Ptr createOptFlow_DualTVL1_GPU();
67 | CV_EXPORTS Ptr createOptFlow_DualTVL1_OCL();
68 |
69 | CV_EXPORTS Ptr createOptFlow_Brox_GPU();
70 |
71 | CV_EXPORTS Ptr createOptFlow_PyrLK_GPU();
72 | CV_EXPORTS Ptr createOptFlow_PyrLK_OCL();
73 | }
74 | }
75 |
76 | #endif // __OPENCV_SUPERRES_OPTICAL_FLOW_HPP__
77 |
--------------------------------------------------------------------------------
/include/opencv2/superres/superres.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_SUPERRES_HPP__
44 | #define __OPENCV_SUPERRES_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 |
48 | namespace cv
49 | {
50 | namespace superres
51 | {
52 | CV_EXPORTS bool initModule_superres();
53 |
54 | class CV_EXPORTS FrameSource
55 | {
56 | public:
57 | virtual ~FrameSource();
58 |
59 | virtual void nextFrame(OutputArray frame) = 0;
60 | virtual void reset() = 0;
61 | };
62 |
63 | CV_EXPORTS Ptr createFrameSource_Empty();
64 |
65 | CV_EXPORTS Ptr createFrameSource_Video(const std::string& fileName);
66 | CV_EXPORTS Ptr createFrameSource_Video_GPU(const std::string& fileName);
67 |
68 | CV_EXPORTS Ptr createFrameSource_Camera(int deviceId = 0);
69 |
70 | class CV_EXPORTS SuperResolution : public cv::Algorithm, public FrameSource
71 | {
72 | public:
73 | void setInput(const Ptr& frameSource);
74 |
75 | void nextFrame(OutputArray frame);
76 | void reset();
77 |
78 | virtual void collectGarbage();
79 |
80 | protected:
81 | SuperResolution();
82 |
83 | virtual void initImpl(Ptr& frameSource) = 0;
84 | virtual void processImpl(Ptr& frameSource, OutputArray output) = 0;
85 |
86 | private:
87 | Ptr frameSource_;
88 | bool firstCall_;
89 | };
90 |
91 | // S. Farsiu , D. Robinson, M. Elad, P. Milanfar. Fast and robust multiframe super resolution.
92 | // Dennis Mitzel, Thomas Pock, Thomas Schoenemann, Daniel Cremers. Video Super Resolution using Duality Based TV-L1 Optical Flow.
93 | CV_EXPORTS Ptr createSuperResolution_BTVL1();
94 | CV_EXPORTS Ptr createSuperResolution_BTVL1_GPU();
95 | CV_EXPORTS Ptr createSuperResolution_BTVL1_OCL();
96 | }
97 | }
98 |
99 | #endif // __OPENCV_SUPERRES_HPP__
100 |
--------------------------------------------------------------------------------
/include/opencv2/ts/gpu_perf.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_GPU_PERF_UTILITY_HPP__
44 | #define __OPENCV_GPU_PERF_UTILITY_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 | #include "opencv2/highgui/highgui.hpp"
48 | #include "opencv2/imgproc/imgproc.hpp"
49 | #include "opencv2/ts/ts_perf.hpp"
50 |
51 | namespace perf
52 | {
53 | #define ALL_BORDER_MODES BorderMode::all()
54 | #define ALL_INTERPOLATIONS Interpolation::all()
55 |
56 | CV_ENUM(BorderMode, BORDER_REFLECT101, BORDER_REPLICATE, BORDER_CONSTANT, BORDER_REFLECT, BORDER_WRAP)
57 | CV_ENUM(Interpolation, INTER_NEAREST, INTER_LINEAR, INTER_CUBIC, INTER_AREA)
58 | CV_ENUM(NormType, NORM_INF, NORM_L1, NORM_L2, NORM_HAMMING, NORM_MINMAX)
59 |
60 | enum { Gray = 1, TwoChannel = 2, BGR = 3, BGRA = 4 };
61 | CV_ENUM(MatCn, Gray, TwoChannel, BGR, BGRA)
62 |
63 | #define GPU_CHANNELS_1_3_4 testing::Values(MatCn(Gray), MatCn(BGR), MatCn(BGRA))
64 | #define GPU_CHANNELS_1_3 testing::Values(MatCn(Gray), MatCn(BGR))
65 |
66 | #define GET_PARAM(k) std::tr1::get< k >(GetParam())
67 |
68 | #define DEF_PARAM_TEST(name, ...) typedef ::perf::TestBaseWithParam< std::tr1::tuple< __VA_ARGS__ > > name
69 | #define DEF_PARAM_TEST_1(name, param_type) typedef ::perf::TestBaseWithParam< param_type > name
70 |
71 | DEF_PARAM_TEST_1(Sz, cv::Size);
72 | typedef perf::Size_MatType Sz_Type;
73 | DEF_PARAM_TEST(Sz_Depth, cv::Size, perf::MatDepth);
74 | DEF_PARAM_TEST(Sz_Depth_Cn, cv::Size, perf::MatDepth, MatCn);
75 |
76 | #define GPU_TYPICAL_MAT_SIZES testing::Values(perf::sz720p, perf::szSXGA, perf::sz1080p)
77 |
78 | #define FAIL_NO_CPU() FAIL() << "No such CPU implementation analogy"
79 |
80 | #define GPU_SANITY_CHECK(mat, ...) \
81 | do{ \
82 | cv::Mat gpu_##mat(mat); \
83 | SANITY_CHECK(gpu_##mat, ## __VA_ARGS__); \
84 | } while(0)
85 |
86 | #define CPU_SANITY_CHECK(mat, ...) \
87 | do{ \
88 | cv::Mat cpu_##mat(mat); \
89 | SANITY_CHECK(cpu_##mat, ## __VA_ARGS__); \
90 | } while(0)
91 |
92 | CV_EXPORTS cv::Mat readImage(const std::string& fileName, int flags = cv::IMREAD_COLOR);
93 |
94 | struct CvtColorInfo
95 | {
96 | int scn;
97 | int dcn;
98 | int code;
99 |
100 | CvtColorInfo() {}
101 | explicit CvtColorInfo(int scn_, int dcn_, int code_) : scn(scn_), dcn(dcn_), code(code_) {}
102 | };
103 | CV_EXPORTS void PrintTo(const CvtColorInfo& info, std::ostream* os);
104 |
105 | CV_EXPORTS void printCudaInfo();
106 |
107 | CV_EXPORTS void sortKeyPoints(std::vector& keypoints, cv::InputOutputArray _descriptors = cv::noArray());
108 | }
109 |
110 | #endif // __OPENCV_GPU_PERF_UTILITY_HPP__
111 |
--------------------------------------------------------------------------------
/include/opencv2/video/video.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_VIDEO_HPP__
44 | #define __OPENCV_VIDEO_HPP__
45 |
46 | #include "opencv2/video/tracking.hpp"
47 | #include "opencv2/video/background_segm.hpp"
48 |
49 | #ifdef __cplusplus
50 | namespace cv
51 | {
52 |
53 | CV_EXPORTS bool initModule_video(void);
54 |
55 | }
56 | #endif
57 |
58 | #endif //__OPENCV_VIDEO_HPP__
59 |
--------------------------------------------------------------------------------
/include/opencv2/videostab/deblurring.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_VIDEOSTAB_DEBLURRING_HPP__
44 | #define __OPENCV_VIDEOSTAB_DEBLURRING_HPP__
45 |
46 | #include
47 | #include "opencv2/core/core.hpp"
48 |
49 | namespace cv
50 | {
51 | namespace videostab
52 | {
53 |
54 | CV_EXPORTS float calcBlurriness(const Mat &frame);
55 |
56 | class CV_EXPORTS DeblurerBase
57 | {
58 | public:
59 | DeblurerBase() : radius_(0), frames_(0), motions_(0) {}
60 |
61 | virtual ~DeblurerBase() {}
62 |
63 | virtual void setRadius(int val) { radius_ = val; }
64 | virtual int radius() const { return radius_; }
65 |
66 | virtual void setFrames(const std::vector &val) { frames_ = &val; }
67 | virtual const std::vector& frames() const { return *frames_; }
68 |
69 | virtual void setMotions(const std::vector &val) { motions_ = &val; }
70 | virtual const std::vector& motions() const { return *motions_; }
71 |
72 | virtual void setBlurrinessRates(const std::vector &val) { blurrinessRates_ = &val; }
73 | virtual const std::vector& blurrinessRates() const { return *blurrinessRates_; }
74 |
75 | virtual void update() {}
76 |
77 | virtual void deblur(int idx, Mat &frame) = 0;
78 |
79 | protected:
80 | int radius_;
81 | const std::vector *frames_;
82 | const std::vector *motions_;
83 | const std::vector *blurrinessRates_;
84 | };
85 |
86 | class CV_EXPORTS NullDeblurer : public DeblurerBase
87 | {
88 | public:
89 | virtual void deblur(int /*idx*/, Mat &/*frame*/) {}
90 | };
91 |
92 | class CV_EXPORTS WeightingDeblurer : public DeblurerBase
93 | {
94 | public:
95 | WeightingDeblurer();
96 |
97 | void setSensitivity(float val) { sensitivity_ = val; }
98 | float sensitivity() const { return sensitivity_; }
99 |
100 | virtual void deblur(int idx, Mat &frame);
101 |
102 | private:
103 | float sensitivity_;
104 | Mat_ bSum_, gSum_, rSum_, wSum_;
105 | };
106 |
107 | } // namespace videostab
108 | } // namespace cv
109 |
110 | #endif
111 |
--------------------------------------------------------------------------------
/include/opencv2/videostab/fast_marching.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_VIDEOSTAB_FAST_MARCHING_HPP__
44 | #define __OPENCV_VIDEOSTAB_FAST_MARCHING_HPP__
45 |
46 | #include
47 | #include
48 | #include
49 | #include "opencv2/core/core.hpp"
50 |
51 | namespace cv
52 | {
53 | namespace videostab
54 | {
55 |
56 | // See http://iwi.eldoc.ub.rug.nl/FILES/root/2004/JGraphToolsTelea/2004JGraphToolsTelea.pdf
57 | class CV_EXPORTS FastMarchingMethod
58 | {
59 | public:
60 | FastMarchingMethod() : inf_(1e6f) {}
61 |
62 | template
63 | Inpaint run(const Mat &mask, Inpaint inpaint);
64 |
65 | Mat distanceMap() const { return dist_; }
66 |
67 | private:
68 | enum { INSIDE = 0, BAND = 1, KNOWN = 255 };
69 |
70 | struct DXY
71 | {
72 | float dist;
73 | int x, y;
74 |
75 | DXY() : dist(0), x(0), y(0) {}
76 | DXY(float _dist, int _x, int _y) : dist(_dist), x(_x), y(_y) {}
77 | bool operator <(const DXY &dxy) const { return dist < dxy.dist; }
78 | };
79 |
80 | float solve(int x1, int y1, int x2, int y2) const;
81 | int& indexOf(const DXY &dxy) { return index_(dxy.y, dxy.x); }
82 |
83 | void heapUp(int idx);
84 | void heapDown(int idx);
85 | void heapAdd(const DXY &dxy);
86 | void heapRemoveMin();
87 |
88 | float inf_;
89 |
90 | cv::Mat_ flag_; // flag map
91 | cv::Mat_ dist_; // distance map
92 |
93 | cv::Mat_ index_; // index of point in the narrow band
94 | std::vector narrowBand_; // narrow band heap
95 | int size_; // narrow band size
96 | };
97 |
98 | } // namespace videostab
99 | } // namespace cv
100 |
101 | #include "fast_marching_inl.hpp"
102 |
103 | #endif
104 |
--------------------------------------------------------------------------------
/include/opencv2/videostab/frame_source.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_VIDEOSTAB_FRAME_SOURCE_HPP__
44 | #define __OPENCV_VIDEOSTAB_FRAME_SOURCE_HPP__
45 |
46 | #include
47 | #include
48 | #include "opencv2/core/core.hpp"
49 | #include "opencv2/highgui/highgui.hpp"
50 |
51 | namespace cv
52 | {
53 | namespace videostab
54 | {
55 |
56 | class CV_EXPORTS IFrameSource
57 | {
58 | public:
59 | virtual ~IFrameSource() {}
60 | virtual void reset() = 0;
61 | virtual Mat nextFrame() = 0;
62 | };
63 |
64 | class CV_EXPORTS NullFrameSource : public IFrameSource
65 | {
66 | public:
67 | virtual void reset() {}
68 | virtual Mat nextFrame() { return Mat(); }
69 | };
70 |
71 | class CV_EXPORTS VideoFileSource : public IFrameSource
72 | {
73 | public:
74 | VideoFileSource(const std::string &path, bool volatileFrame = false);
75 |
76 | virtual void reset();
77 | virtual Mat nextFrame();
78 |
79 | int frameCount() { return static_cast(reader_.get(CV_CAP_PROP_FRAME_COUNT)); }
80 | double fps() { return reader_.get(CV_CAP_PROP_FPS); }
81 |
82 | private:
83 | std::string path_;
84 | bool volatileFrame_;
85 | VideoCapture reader_;
86 | };
87 |
88 | } // namespace videostab
89 | } // namespace cv
90 |
91 | #endif
92 |
--------------------------------------------------------------------------------
/include/opencv2/videostab/log.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_VIDEOSTAB_LOG_HPP__
44 | #define __OPENCV_VIDEOSTAB_LOG_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 |
48 | namespace cv
49 | {
50 | namespace videostab
51 | {
52 |
53 | class CV_EXPORTS ILog
54 | {
55 | public:
56 | virtual ~ILog() {}
57 | virtual void print(const char *format, ...) = 0;
58 | };
59 |
60 | class CV_EXPORTS NullLog : public ILog
61 | {
62 | public:
63 | virtual void print(const char * /*format*/, ...) {}
64 | };
65 |
66 | class CV_EXPORTS LogToStdout : public ILog
67 | {
68 | public:
69 | virtual void print(const char *format, ...);
70 | };
71 |
72 | } // namespace videostab
73 | } // namespace cv
74 |
75 | #endif
76 |
--------------------------------------------------------------------------------
/include/opencv2/videostab/motion_stabilizing.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_VIDEOSTAB_MOTION_STABILIZING_HPP__
44 | #define __OPENCV_VIDEOSTAB_MOTION_STABILIZING_HPP__
45 |
46 | #include
47 | #include "opencv2/core/core.hpp"
48 |
49 | namespace cv
50 | {
51 | namespace videostab
52 | {
53 |
54 | class CV_EXPORTS IMotionStabilizer
55 | {
56 | public:
57 | virtual void stabilize(const Mat *motions, int size, Mat *stabilizationMotions) const = 0;
58 |
59 | #ifdef OPENCV_CAN_BREAK_BINARY_COMPATIBILITY
60 | virtual ~IMotionStabilizer() {}
61 | #endif
62 | };
63 |
64 | class CV_EXPORTS MotionFilterBase : public IMotionStabilizer
65 | {
66 | public:
67 | MotionFilterBase() : radius_(0) {}
68 | virtual ~MotionFilterBase() {}
69 |
70 | virtual void setRadius(int val) { radius_ = val; }
71 | virtual int radius() const { return radius_; }
72 |
73 | virtual void update() {}
74 |
75 | virtual Mat stabilize(int index, const Mat *motions, int size) const = 0;
76 | virtual void stabilize(const Mat *motions, int size, Mat *stabilizationMotions) const;
77 |
78 | protected:
79 | int radius_;
80 | };
81 |
82 | class CV_EXPORTS GaussianMotionFilter : public MotionFilterBase
83 | {
84 | public:
85 | GaussianMotionFilter() : stdev_(-1.f) {}
86 |
87 | void setStdev(float val) { stdev_ = val; }
88 | float stdev() const { return stdev_; }
89 |
90 | virtual void update();
91 |
92 | virtual Mat stabilize(int index, const Mat *motions, int size) const;
93 |
94 | private:
95 | float stdev_;
96 | std::vector weight_;
97 | };
98 |
99 | CV_EXPORTS Mat ensureInclusionConstraint(const Mat &M, Size size, float trimRatio);
100 |
101 | CV_EXPORTS float estimateOptimalTrimRatio(const Mat &M, Size size);
102 |
103 | } // namespace videostab
104 | } // namespace
105 |
106 | #endif
107 |
--------------------------------------------------------------------------------
/include/opencv2/videostab/optical_flow.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_VIDEOSTAB_OPTICAL_FLOW_HPP__
44 | #define __OPENCV_VIDEOSTAB_OPTICAL_FLOW_HPP__
45 |
46 | #include "opencv2/core/core.hpp"
47 | #include "opencv2/opencv_modules.hpp"
48 |
49 | #if defined(HAVE_OPENCV_GPU) && !defined(ANDROID)
50 | # include "opencv2/gpu/gpu.hpp"
51 | #endif
52 |
53 | namespace cv
54 | {
55 | namespace videostab
56 | {
57 |
58 | class CV_EXPORTS ISparseOptFlowEstimator
59 | {
60 | public:
61 | virtual ~ISparseOptFlowEstimator() {}
62 | virtual void run(
63 | InputArray frame0, InputArray frame1, InputArray points0, InputOutputArray points1,
64 | OutputArray status, OutputArray errors) = 0;
65 | };
66 |
67 | class CV_EXPORTS IDenseOptFlowEstimator
68 | {
69 | public:
70 | virtual ~IDenseOptFlowEstimator() {}
71 | virtual void run(
72 | InputArray frame0, InputArray frame1, InputOutputArray flowX, InputOutputArray flowY,
73 | OutputArray errors) = 0;
74 | };
75 |
76 | class CV_EXPORTS PyrLkOptFlowEstimatorBase
77 | {
78 | public:
79 | PyrLkOptFlowEstimatorBase() { setWinSize(Size(21, 21)); setMaxLevel(3); }
80 |
81 | void setWinSize(Size val) { winSize_ = val; }
82 | Size winSize() const { return winSize_; }
83 |
84 | void setMaxLevel(int val) { maxLevel_ = val; }
85 | int maxLevel() const { return maxLevel_; }
86 |
87 | protected:
88 | Size winSize_;
89 | int maxLevel_;
90 | };
91 |
92 | class CV_EXPORTS SparsePyrLkOptFlowEstimator
93 | : public PyrLkOptFlowEstimatorBase, public ISparseOptFlowEstimator
94 | {
95 | public:
96 | virtual void run(
97 | InputArray frame0, InputArray frame1, InputArray points0, InputOutputArray points1,
98 | OutputArray status, OutputArray errors);
99 | };
100 |
101 | #if defined(HAVE_OPENCV_GPU) && !defined(ANDROID)
102 | class CV_EXPORTS DensePyrLkOptFlowEstimatorGpu
103 | : public PyrLkOptFlowEstimatorBase, public IDenseOptFlowEstimator
104 | {
105 | public:
106 | DensePyrLkOptFlowEstimatorGpu();
107 |
108 | virtual void run(
109 | InputArray frame0, InputArray frame1, InputOutputArray flowX, InputOutputArray flowY,
110 | OutputArray errors);
111 | private:
112 | gpu::PyrLKOpticalFlow optFlowEstimator_;
113 | gpu::GpuMat frame0_, frame1_, flowX_, flowY_, errors_;
114 | };
115 | #endif
116 |
117 | } // namespace videostab
118 | } // namespace cv
119 |
120 | #endif
121 |
--------------------------------------------------------------------------------
/include/opencv2/videostab/videostab.hpp:
--------------------------------------------------------------------------------
1 | /*M///////////////////////////////////////////////////////////////////////////////////////
2 | //
3 | // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 | //
5 | // By downloading, copying, installing or using the software you agree to this license.
6 | // If you do not agree to this license, do not download, install,
7 | // copy or use the software.
8 | //
9 | //
10 | // License Agreement
11 | // For Open Source Computer Vision Library
12 | //
13 | // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 | // Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
15 | // Third party copyrights are property of their respective owners.
16 | //
17 | // Redistribution and use in source and binary forms, with or without modification,
18 | // are permitted provided that the following conditions are met:
19 | //
20 | // * Redistribution's of source code must retain the above copyright notice,
21 | // this list of conditions and the following disclaimer.
22 | //
23 | // * Redistribution's in binary form must reproduce the above copyright notice,
24 | // this list of conditions and the following disclaimer in the documentation
25 | // and/or other materials provided with the distribution.
26 | //
27 | // * The name of the copyright holders may not be used to endorse or promote products
28 | // derived from this software without specific prior written permission.
29 | //
30 | // This software is provided by the copyright holders and contributors "as is" and
31 | // any express or implied warranties, including, but not limited to, the implied
32 | // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 | // In no event shall the Intel Corporation or contributors be liable for any direct,
34 | // indirect, incidental, special, exemplary, or consequential damages
35 | // (including, but not limited to, procurement of substitute goods or services;
36 | // loss of use, data, or profits; or business interruption) however caused
37 | // and on any theory of liability, whether in contract, strict liability,
38 | // or tort (including negligence or otherwise) arising in any way out of
39 | // the use of this software, even if advised of the possibility of such damage.
40 | //
41 | //M*/
42 |
43 | #ifndef __OPENCV_VIDEOSTAB_HPP__
44 | #define __OPENCV_VIDEOSTAB_HPP__
45 |
46 | #include "opencv2/videostab/stabilizer.hpp"
47 |
48 | #endif
49 |
--------------------------------------------------------------------------------
/lib/dhconfigsdk.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/dhconfigsdk.lib
--------------------------------------------------------------------------------
/lib/dhnetsdk.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/dhnetsdk.lib
--------------------------------------------------------------------------------
/lib/dhplay.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/dhplay.lib
--------------------------------------------------------------------------------
/lib/opencv_core2410.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/opencv_core2410.lib
--------------------------------------------------------------------------------
/lib/opencv_core2410d.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/opencv_core2410d.lib
--------------------------------------------------------------------------------
/lib/opencv_highgui2410.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/opencv_highgui2410.lib
--------------------------------------------------------------------------------
/lib/opencv_highgui2410d.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/opencv_highgui2410d.lib
--------------------------------------------------------------------------------
/lib/opencv_imgproc2410.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/opencv_imgproc2410.lib
--------------------------------------------------------------------------------
/lib/opencv_imgproc2410d.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alonegiveup/NVRForDaHua/297789d42c6d23e9dcaa2d5df9bd39d288e8b860/lib/opencv_imgproc2410d.lib
--------------------------------------------------------------------------------