VideoCompensator
Browse files- .gitattributes +3 -0
- .gitignore +353 -0
- README.md +2 -0
- VideoCompensator.sln +56 -0
- libvideo_compensator/include/Header.h +1 -0
- libvideo_compensator/include/seq_compensator.h +28 -0
- libvideo_compensator/src/sequence_compensator_imp.cpp +79 -0
- libvideo_compensator/src/sequence_compensator_imp.h +29 -0
- libvideo_compensator/vcproj/VideoCompensator.vcxproj +167 -0
- libvideo_compensator/vcproj/VideoCompensator.vcxproj.filters +33 -0
- libvideo_compensator/vcproj/VideoCompensator.vcxproj.user +4 -0
- test/test_video_compensator/data/img_1.json +14 -0
- test/test_video_compensator/data/img_1.png +3 -0
- test/test_video_compensator/data/img_2.json +14 -0
- test/test_video_compensator/data/img_2.png +3 -0
- test/test_video_compensator/data/img_3.json +14 -0
- test/test_video_compensator/data/img_3.png +3 -0
- test/test_video_compensator/src/test_sequence_compensator.cpp +31 -0
- test/test_video_compensator/src/test_utility.h +68 -0
- test/test_video_compensator/vcproj/test_video_compensator.vcxproj +161 -0
- test/test_video_compensator/vcproj/test_video_compensator.vcxproj.filters +27 -0
- test/test_video_compensator/vcproj/test_video_compensator.vcxproj.user +4 -0
.gitattributes
CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
test/test_video_compensator/data/img_1.png filter=lfs diff=lfs merge=lfs -text
|
37 |
+
test/test_video_compensator/data/img_2.png filter=lfs diff=lfs merge=lfs -text
|
38 |
+
test/test_video_compensator/data/img_3.png filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
@@ -0,0 +1,353 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
## Ignore Visual Studio temporary files, build results, and
|
2 |
+
## files generated by popular Visual Studio add-ons.
|
3 |
+
##
|
4 |
+
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
5 |
+
|
6 |
+
# User-specific files
|
7 |
+
*.rsuser
|
8 |
+
*.suo
|
9 |
+
*.user
|
10 |
+
*.userosscache
|
11 |
+
*.sln.docstates
|
12 |
+
|
13 |
+
# User-specific files (MonoDevelop/Xamarin Studio)
|
14 |
+
*.userprefs
|
15 |
+
|
16 |
+
# Mono auto generated files
|
17 |
+
mono_crash.*
|
18 |
+
|
19 |
+
# Build results
|
20 |
+
[Dd]ebug/
|
21 |
+
[Dd]ebugPublic/
|
22 |
+
[Rr]elease/
|
23 |
+
[Rr]eleases/
|
24 |
+
x64/
|
25 |
+
x86/
|
26 |
+
[Aa][Rr][Mm]/
|
27 |
+
[Aa][Rr][Mm]64/
|
28 |
+
bld/
|
29 |
+
[Bb]in/
|
30 |
+
[Oo]bj/
|
31 |
+
[Ll]og/
|
32 |
+
[Ll]ogs/
|
33 |
+
|
34 |
+
# Visual Studio 2015/2017 cache/options directory
|
35 |
+
.vs/
|
36 |
+
# Uncomment if you have tasks that create the project's static files in wwwroot
|
37 |
+
#wwwroot/
|
38 |
+
|
39 |
+
# Visual Studio 2017 auto generated files
|
40 |
+
Generated\ Files/
|
41 |
+
|
42 |
+
# MSTest test Results
|
43 |
+
[Tt]est[Rr]esult*/
|
44 |
+
[Bb]uild[Ll]og.*
|
45 |
+
|
46 |
+
# NUnit
|
47 |
+
*.VisualState.xml
|
48 |
+
TestResult.xml
|
49 |
+
nunit-*.xml
|
50 |
+
|
51 |
+
# Build Results of an ATL Project
|
52 |
+
[Dd]ebugPS/
|
53 |
+
[Rr]eleasePS/
|
54 |
+
dlldata.c
|
55 |
+
|
56 |
+
# Benchmark Results
|
57 |
+
BenchmarkDotNet.Artifacts/
|
58 |
+
|
59 |
+
# .NET Core
|
60 |
+
project.lock.json
|
61 |
+
project.fragment.lock.json
|
62 |
+
artifacts/
|
63 |
+
|
64 |
+
# StyleCop
|
65 |
+
StyleCopReport.xml
|
66 |
+
|
67 |
+
# Files built by Visual Studio
|
68 |
+
*_i.c
|
69 |
+
*_p.c
|
70 |
+
*_h.h
|
71 |
+
*.ilk
|
72 |
+
*.meta
|
73 |
+
*.obj
|
74 |
+
*.iobj
|
75 |
+
*.pch
|
76 |
+
*.pdb
|
77 |
+
*.ipdb
|
78 |
+
*.pgc
|
79 |
+
*.pgd
|
80 |
+
*.rsp
|
81 |
+
*.sbr
|
82 |
+
*.tlb
|
83 |
+
*.tli
|
84 |
+
*.tlh
|
85 |
+
*.tmp
|
86 |
+
*.tmp_proj
|
87 |
+
*_wpftmp.csproj
|
88 |
+
*.log
|
89 |
+
*.vspscc
|
90 |
+
*.vssscc
|
91 |
+
.builds
|
92 |
+
*.pidb
|
93 |
+
*.svclog
|
94 |
+
*.scc
|
95 |
+
|
96 |
+
# Chutzpah Test files
|
97 |
+
_Chutzpah*
|
98 |
+
|
99 |
+
# Visual C++ cache files
|
100 |
+
ipch/
|
101 |
+
*.aps
|
102 |
+
*.ncb
|
103 |
+
*.opendb
|
104 |
+
*.opensdf
|
105 |
+
*.sdf
|
106 |
+
*.cachefile
|
107 |
+
*.VC.db
|
108 |
+
*.VC.VC.opendb
|
109 |
+
|
110 |
+
# Visual Studio profiler
|
111 |
+
*.psess
|
112 |
+
*.vsp
|
113 |
+
*.vspx
|
114 |
+
*.sap
|
115 |
+
|
116 |
+
# Visual Studio Trace Files
|
117 |
+
*.e2e
|
118 |
+
|
119 |
+
# TFS 2012 Local Workspace
|
120 |
+
$tf/
|
121 |
+
|
122 |
+
# Guidance Automation Toolkit
|
123 |
+
*.gpState
|
124 |
+
|
125 |
+
# ReSharper is a .NET coding add-in
|
126 |
+
_ReSharper*/
|
127 |
+
*.[Rr]e[Ss]harper
|
128 |
+
*.DotSettings.user
|
129 |
+
|
130 |
+
# TeamCity is a build add-in
|
131 |
+
_TeamCity*
|
132 |
+
|
133 |
+
# DotCover is a Code Coverage Tool
|
134 |
+
*.dotCover
|
135 |
+
|
136 |
+
# AxoCover is a Code Coverage Tool
|
137 |
+
.axoCover/*
|
138 |
+
!.axoCover/settings.json
|
139 |
+
|
140 |
+
# Coverlet is a free, cross platform Code Coverage Tool
|
141 |
+
coverage*[.json, .xml, .info]
|
142 |
+
|
143 |
+
# Visual Studio code coverage results
|
144 |
+
*.coverage
|
145 |
+
*.coveragexml
|
146 |
+
|
147 |
+
# NCrunch
|
148 |
+
_NCrunch_*
|
149 |
+
.*crunch*.local.xml
|
150 |
+
nCrunchTemp_*
|
151 |
+
|
152 |
+
# MightyMoose
|
153 |
+
*.mm.*
|
154 |
+
AutoTest.Net/
|
155 |
+
|
156 |
+
# Web workbench (sass)
|
157 |
+
.sass-cache/
|
158 |
+
|
159 |
+
# Installshield output folder
|
160 |
+
[Ee]xpress/
|
161 |
+
|
162 |
+
# DocProject is a documentation generator add-in
|
163 |
+
DocProject/buildhelp/
|
164 |
+
DocProject/Help/*.HxT
|
165 |
+
DocProject/Help/*.HxC
|
166 |
+
DocProject/Help/*.hhc
|
167 |
+
DocProject/Help/*.hhk
|
168 |
+
DocProject/Help/*.hhp
|
169 |
+
DocProject/Help/Html2
|
170 |
+
DocProject/Help/html
|
171 |
+
|
172 |
+
# Click-Once directory
|
173 |
+
publish/
|
174 |
+
|
175 |
+
# Publish Web Output
|
176 |
+
*.[Pp]ublish.xml
|
177 |
+
*.azurePubxml
|
178 |
+
# Note: Comment the next line if you want to checkin your web deploy settings,
|
179 |
+
# but database connection strings (with potential passwords) will be unencrypted
|
180 |
+
*.pubxml
|
181 |
+
*.publishproj
|
182 |
+
|
183 |
+
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
184 |
+
# checkin your Azure Web App publish settings, but sensitive information contained
|
185 |
+
# in these scripts will be unencrypted
|
186 |
+
PublishScripts/
|
187 |
+
|
188 |
+
# NuGet Packages
|
189 |
+
*.nupkg
|
190 |
+
# NuGet Symbol Packages
|
191 |
+
*.snupkg
|
192 |
+
# The packages folder can be ignored because of Package Restore
|
193 |
+
**/[Pp]ackages/*
|
194 |
+
# except build/, which is used as an MSBuild target.
|
195 |
+
!**/[Pp]ackages/build/
|
196 |
+
# Uncomment if necessary however generally it will be regenerated when needed
|
197 |
+
#!**/[Pp]ackages/repositories.config
|
198 |
+
# NuGet v3's project.json files produces more ignorable files
|
199 |
+
*.nuget.props
|
200 |
+
*.nuget.targets
|
201 |
+
|
202 |
+
# Microsoft Azure Build Output
|
203 |
+
csx/
|
204 |
+
*.build.csdef
|
205 |
+
|
206 |
+
# Microsoft Azure Emulator
|
207 |
+
ecf/
|
208 |
+
rcf/
|
209 |
+
|
210 |
+
# Windows Store app package directories and files
|
211 |
+
AppPackages/
|
212 |
+
BundleArtifacts/
|
213 |
+
Package.StoreAssociation.xml
|
214 |
+
_pkginfo.txt
|
215 |
+
*.appx
|
216 |
+
*.appxbundle
|
217 |
+
*.appxupload
|
218 |
+
|
219 |
+
# Visual Studio cache files
|
220 |
+
# files ending in .cache can be ignored
|
221 |
+
*.[Cc]ache
|
222 |
+
# but keep track of directories ending in .cache
|
223 |
+
!?*.[Cc]ache/
|
224 |
+
|
225 |
+
# Others
|
226 |
+
ClientBin/
|
227 |
+
~$*
|
228 |
+
*~
|
229 |
+
*.dbmdl
|
230 |
+
*.dbproj.schemaview
|
231 |
+
*.jfm
|
232 |
+
*.pfx
|
233 |
+
*.publishsettings
|
234 |
+
orleans.codegen.cs
|
235 |
+
|
236 |
+
# Including strong name files can present a security risk
|
237 |
+
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
238 |
+
#*.snk
|
239 |
+
|
240 |
+
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
241 |
+
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
242 |
+
#bower_components/
|
243 |
+
|
244 |
+
# RIA/Silverlight projects
|
245 |
+
Generated_Code/
|
246 |
+
|
247 |
+
# Backup & report files from converting an old project file
|
248 |
+
# to a newer Visual Studio version. Backup files are not needed,
|
249 |
+
# because we have git ;-)
|
250 |
+
_UpgradeReport_Files/
|
251 |
+
Backup*/
|
252 |
+
UpgradeLog*.XML
|
253 |
+
UpgradeLog*.htm
|
254 |
+
ServiceFabricBackup/
|
255 |
+
*.rptproj.bak
|
256 |
+
|
257 |
+
# SQL Server files
|
258 |
+
*.mdf
|
259 |
+
*.ldf
|
260 |
+
*.ndf
|
261 |
+
|
262 |
+
# Business Intelligence projects
|
263 |
+
*.rdl.data
|
264 |
+
*.bim.layout
|
265 |
+
*.bim_*.settings
|
266 |
+
*.rptproj.rsuser
|
267 |
+
*- [Bb]ackup.rdl
|
268 |
+
*- [Bb]ackup ([0-9]).rdl
|
269 |
+
*- [Bb]ackup ([0-9][0-9]).rdl
|
270 |
+
|
271 |
+
# Microsoft Fakes
|
272 |
+
FakesAssemblies/
|
273 |
+
|
274 |
+
# GhostDoc plugin setting file
|
275 |
+
*.GhostDoc.xml
|
276 |
+
|
277 |
+
# Node.js Tools for Visual Studio
|
278 |
+
.ntvs_analysis.dat
|
279 |
+
node_modules/
|
280 |
+
|
281 |
+
# Visual Studio 6 build log
|
282 |
+
*.plg
|
283 |
+
|
284 |
+
# Visual Studio 6 workspace options file
|
285 |
+
*.opt
|
286 |
+
|
287 |
+
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
288 |
+
*.vbw
|
289 |
+
|
290 |
+
# Visual Studio LightSwitch build output
|
291 |
+
**/*.HTMLClient/GeneratedArtifacts
|
292 |
+
**/*.DesktopClient/GeneratedArtifacts
|
293 |
+
**/*.DesktopClient/ModelManifest.xml
|
294 |
+
**/*.Server/GeneratedArtifacts
|
295 |
+
**/*.Server/ModelManifest.xml
|
296 |
+
_Pvt_Extensions
|
297 |
+
|
298 |
+
# Paket dependency manager
|
299 |
+
.paket/paket.exe
|
300 |
+
paket-files/
|
301 |
+
|
302 |
+
# FAKE - F# Make
|
303 |
+
.fake/
|
304 |
+
|
305 |
+
# CodeRush personal settings
|
306 |
+
.cr/personal
|
307 |
+
|
308 |
+
# Python Tools for Visual Studio (PTVS)
|
309 |
+
__pycache__/
|
310 |
+
*.pyc
|
311 |
+
|
312 |
+
# Cake - Uncomment if you are using it
|
313 |
+
# tools/**
|
314 |
+
# !tools/packages.config
|
315 |
+
|
316 |
+
# Tabs Studio
|
317 |
+
*.tss
|
318 |
+
|
319 |
+
# Telerik's JustMock configuration file
|
320 |
+
*.jmconfig
|
321 |
+
|
322 |
+
# BizTalk build output
|
323 |
+
*.btp.cs
|
324 |
+
*.btm.cs
|
325 |
+
*.odx.cs
|
326 |
+
*.xsd.cs
|
327 |
+
|
328 |
+
# OpenCover UI analysis results
|
329 |
+
OpenCover/
|
330 |
+
|
331 |
+
# Azure Stream Analytics local run output
|
332 |
+
ASALocalRun/
|
333 |
+
|
334 |
+
# MSBuild Binary and Structured Log
|
335 |
+
*.binlog
|
336 |
+
|
337 |
+
# NVidia Nsight GPU debugger configuration file
|
338 |
+
*.nvuser
|
339 |
+
|
340 |
+
# MFractors (Xamarin productivity tool) working folder
|
341 |
+
.mfractor/
|
342 |
+
|
343 |
+
# Local History for Visual Studio
|
344 |
+
.localhistory/
|
345 |
+
|
346 |
+
# BeatPulse healthcheck temp database
|
347 |
+
healthchecksdb
|
348 |
+
|
349 |
+
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
350 |
+
MigrationBackup/
|
351 |
+
|
352 |
+
# Ionide (cross platform F# VS Code tools) working folder
|
353 |
+
.ionide/
|
README.md
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# VideoCompensator
|
2 |
+
Remove moving object from video to get only a clean background
|
VideoCompensator.sln
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
Microsoft Visual Studio Solution File, Format Version 12.00
|
3 |
+
# Visual Studio 15
|
4 |
+
VisualStudioVersion = 15.0.28307.960
|
5 |
+
MinimumVisualStudioVersion = 10.0.40219.1
|
6 |
+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_video_compensator", "test\test_video_compensator\vcproj\test_video_compensator.vcxproj", "{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}"
|
7 |
+
EndProject
|
8 |
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{F193575E-B55C-41E4-8884-737075000437}"
|
9 |
+
EndProject
|
10 |
+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvideo_compensator", "libvideo_compensator\vcproj\VideoCompensator.vcxproj", "{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}"
|
11 |
+
EndProject
|
12 |
+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_json", "..\..\work\commlib\jsoncpp\makefiles\msvc2017\lib_json.vcxproj", "{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}"
|
13 |
+
EndProject
|
14 |
+
Global
|
15 |
+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
16 |
+
Debug|x64 = Debug|x64
|
17 |
+
Debug|x86 = Debug|x86
|
18 |
+
Release|x64 = Release|x64
|
19 |
+
Release|x86 = Release|x86
|
20 |
+
EndGlobalSection
|
21 |
+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
22 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}.Debug|x64.ActiveCfg = Debug|x64
|
23 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}.Debug|x64.Build.0 = Debug|x64
|
24 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}.Debug|x86.ActiveCfg = Debug|Win32
|
25 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}.Debug|x86.Build.0 = Debug|Win32
|
26 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}.Release|x64.ActiveCfg = Release|x64
|
27 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}.Release|x64.Build.0 = Release|x64
|
28 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}.Release|x86.ActiveCfg = Release|Win32
|
29 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}.Release|x86.Build.0 = Release|Win32
|
30 |
+
{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}.Debug|x64.ActiveCfg = Debug|x64
|
31 |
+
{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}.Debug|x64.Build.0 = Debug|x64
|
32 |
+
{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}.Debug|x86.ActiveCfg = Debug|Win32
|
33 |
+
{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}.Debug|x86.Build.0 = Debug|Win32
|
34 |
+
{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}.Release|x64.ActiveCfg = Release|x64
|
35 |
+
{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}.Release|x64.Build.0 = Release|x64
|
36 |
+
{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}.Release|x86.ActiveCfg = Release|Win32
|
37 |
+
{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}.Release|x86.Build.0 = Release|Win32
|
38 |
+
{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug|x64.ActiveCfg = Debug|x64
|
39 |
+
{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug|x64.Build.0 = Debug|x64
|
40 |
+
{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug|x86.ActiveCfg = Debug|Win32
|
41 |
+
{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug|x86.Build.0 = Debug|Win32
|
42 |
+
{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release|x64.ActiveCfg = Release|x64
|
43 |
+
{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release|x64.Build.0 = Release|x64
|
44 |
+
{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release|x86.ActiveCfg = Release|Win32
|
45 |
+
{1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release|x86.Build.0 = Release|Win32
|
46 |
+
EndGlobalSection
|
47 |
+
GlobalSection(SolutionProperties) = preSolution
|
48 |
+
HideSolutionNode = FALSE
|
49 |
+
EndGlobalSection
|
50 |
+
GlobalSection(NestedProjects) = preSolution
|
51 |
+
{C5F0E919-E67E-41FD-8FAE-7464EF283EEF} = {F193575E-B55C-41E4-8884-737075000437}
|
52 |
+
EndGlobalSection
|
53 |
+
GlobalSection(ExtensibilityGlobals) = postSolution
|
54 |
+
SolutionGuid = {1DB601F0-8479-4D4E-9417-85960FF780FE}
|
55 |
+
EndGlobalSection
|
56 |
+
EndGlobal
|
libvideo_compensator/include/Header.h
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
#pragma once
|
libvideo_compensator/include/seq_compensator.h
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#pragma once
|
2 |
+
#include <memory>
|
3 |
+
#include "opencv2/core.hpp"
|
4 |
+
|
5 |
+
namespace Ivs
|
6 |
+
{
|
7 |
+
struct TInputImageMeta
|
8 |
+
{
|
9 |
+
cv::Mat matImage;
|
10 |
+
std::vector<cv::Rect> vecObjRegions;
|
11 |
+
};
|
12 |
+
|
13 |
+
class ISequenceCompensator
|
14 |
+
{
|
15 |
+
public:
|
16 |
+
virtual ~ISequenceCompensator() = default;
|
17 |
+
virtual void SetInputMeta(const TInputImageMeta& tInput) = 0;
|
18 |
+
virtual void Process() = 0;
|
19 |
+
virtual bool IsBackgroundRecover() = 0;
|
20 |
+
virtual cv::Mat GetBackgroundImage() = 0;
|
21 |
+
|
22 |
+
};
|
23 |
+
|
24 |
+
typedef std::unique_ptr<ISequenceCompensator> PtrSequenceCompensator;
|
25 |
+
PtrSequenceCompensator CreateSequenceCompensator();
|
26 |
+
}
|
27 |
+
|
28 |
+
|
libvideo_compensator/src/sequence_compensator_imp.cpp
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#include "sequence_compensator_imp.h"
|
2 |
+
|
3 |
+
namespace Ivs
|
4 |
+
{
|
5 |
+
PtrSequenceCompensator CreateSequenceCompensator()
|
6 |
+
{
|
7 |
+
return std::make_unique<CSequenceCompensator>();
|
8 |
+
}
|
9 |
+
|
10 |
+
CSequenceCompensator::~CSequenceCompensator()
|
11 |
+
{
|
12 |
+
m_matBackgroundMask.release();
|
13 |
+
m_matBackground.release();
|
14 |
+
}
|
15 |
+
|
16 |
+
void CSequenceCompensator::SetInputMeta(const TInputImageMeta& tInput)
|
17 |
+
{
|
18 |
+
m_matCurFrame = tInput.matImage;
|
19 |
+
m_vecRectObjRegion = tInput.vecObjRegions;
|
20 |
+
|
21 |
+
if (m_matBackground.empty())
|
22 |
+
{
|
23 |
+
InitBackground();
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
void CSequenceCompensator::Process()
|
28 |
+
{
|
29 |
+
if (m_matBackgroundMask.empty())
|
30 |
+
{
|
31 |
+
return;
|
32 |
+
}
|
33 |
+
|
34 |
+
m_matCurFrame.copyTo(m_matBackground, m_matBackgroundMask);
|
35 |
+
UpdateBackgroundMask();
|
36 |
+
}
|
37 |
+
|
38 |
+
bool CSequenceCompensator::IsBackgroundRecover()
|
39 |
+
{
|
40 |
+
if (m_matBackgroundMask.empty())
|
41 |
+
{
|
42 |
+
return false;
|
43 |
+
}
|
44 |
+
|
45 |
+
return cv::countNonZero(m_matBackgroundMask) == 0;
|
46 |
+
}
|
47 |
+
|
48 |
+
cv::Mat CSequenceCompensator::GetBackgroundImage()
|
49 |
+
{
|
50 |
+
return m_matBackground;
|
51 |
+
}
|
52 |
+
|
53 |
+
void CSequenceCompensator::InitBackground()
|
54 |
+
{
|
55 |
+
m_matCurFrame.copyTo(m_matBackground);
|
56 |
+
m_matBackgroundMask = cv::Mat::zeros(m_matBackground.size(), CV_8UC1);
|
57 |
+
|
58 |
+
for (auto& rectObj : m_vecRectObjRegion)
|
59 |
+
{
|
60 |
+
m_matBackgroundMask(rectObj).setTo(255);
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
void CSequenceCompensator::UpdateBackgroundMask()
|
65 |
+
{
|
66 |
+
|
67 |
+
cv::Mat matMaskCur = cv::Mat::zeros(m_matBackgroundMask.size(), CV_8UC1);
|
68 |
+
for (auto& rect : m_vecRectObjRegion)
|
69 |
+
{
|
70 |
+
matMaskCur(rect).setTo(255);
|
71 |
+
}
|
72 |
+
|
73 |
+
cv::bitwise_and(m_matBackgroundMask, matMaskCur, m_matBackgroundMask);
|
74 |
+
m_vecRectObjRegionPrev = m_vecRectObjRegion;
|
75 |
+
|
76 |
+
matMaskCur.release();
|
77 |
+
}
|
78 |
+
|
79 |
+
}
|
libvideo_compensator/src/sequence_compensator_imp.h
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#pragma once
|
2 |
+
#include "../include/seq_compensator.h"
|
3 |
+
|
4 |
+
namespace Ivs
|
5 |
+
{
|
6 |
+
class CSequenceCompensator: public ISequenceCompensator
|
7 |
+
{
|
8 |
+
public:
|
9 |
+
CSequenceCompensator() = default;
|
10 |
+
~CSequenceCompensator();
|
11 |
+
|
12 |
+
void SetInputMeta(const TInputImageMeta& tInput) override;
|
13 |
+
void Process() override;
|
14 |
+
bool IsBackgroundRecover() override;
|
15 |
+
cv::Mat GetBackgroundImage() override;
|
16 |
+
|
17 |
+
private:
|
18 |
+
void InitBackground();
|
19 |
+
void UpdateBackgroundMask();
|
20 |
+
cv::Mat m_matBackground;
|
21 |
+
|
22 |
+
cv::Mat m_matBackgroundMask;
|
23 |
+
|
24 |
+
cv::Mat m_matCurFrame;
|
25 |
+
std::vector<cv::Rect> m_vecRectObjRegion;
|
26 |
+
std::vector<cv::Rect> m_vecRectObjRegionPrev;
|
27 |
+
|
28 |
+
};
|
29 |
+
}
|
libvideo_compensator/vcproj/VideoCompensator.vcxproj
ADDED
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3 |
+
<ItemGroup Label="ProjectConfigurations">
|
4 |
+
<ProjectConfiguration Include="Debug|Win32">
|
5 |
+
<Configuration>Debug</Configuration>
|
6 |
+
<Platform>Win32</Platform>
|
7 |
+
</ProjectConfiguration>
|
8 |
+
<ProjectConfiguration Include="Release|Win32">
|
9 |
+
<Configuration>Release</Configuration>
|
10 |
+
<Platform>Win32</Platform>
|
11 |
+
</ProjectConfiguration>
|
12 |
+
<ProjectConfiguration Include="Debug|x64">
|
13 |
+
<Configuration>Debug</Configuration>
|
14 |
+
<Platform>x64</Platform>
|
15 |
+
</ProjectConfiguration>
|
16 |
+
<ProjectConfiguration Include="Release|x64">
|
17 |
+
<Configuration>Release</Configuration>
|
18 |
+
<Platform>x64</Platform>
|
19 |
+
</ProjectConfiguration>
|
20 |
+
</ItemGroup>
|
21 |
+
<PropertyGroup Label="Globals">
|
22 |
+
<VCProjectVersion>15.0</VCProjectVersion>
|
23 |
+
<ProjectGuid>{A3F24EA0-D655-4C3C-BE18-BDCA0C3D425F}</ProjectGuid>
|
24 |
+
<RootNamespace>VideoCompensator</RootNamespace>
|
25 |
+
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
|
26 |
+
<ProjectName>libvideo_compensator</ProjectName>
|
27 |
+
</PropertyGroup>
|
28 |
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
29 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
30 |
+
<ConfigurationType>StaticLibrary</ConfigurationType>
|
31 |
+
<UseDebugLibraries>true</UseDebugLibraries>
|
32 |
+
<PlatformToolset>v141</PlatformToolset>
|
33 |
+
<CharacterSet>MultiByte</CharacterSet>
|
34 |
+
</PropertyGroup>
|
35 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
36 |
+
<ConfigurationType>StaticLibrary</ConfigurationType>
|
37 |
+
<UseDebugLibraries>false</UseDebugLibraries>
|
38 |
+
<PlatformToolset>v141</PlatformToolset>
|
39 |
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
40 |
+
<CharacterSet>MultiByte</CharacterSet>
|
41 |
+
</PropertyGroup>
|
42 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
43 |
+
<ConfigurationType>StaticLibrary</ConfigurationType>
|
44 |
+
<UseDebugLibraries>true</UseDebugLibraries>
|
45 |
+
<PlatformToolset>v141</PlatformToolset>
|
46 |
+
<CharacterSet>MultiByte</CharacterSet>
|
47 |
+
</PropertyGroup>
|
48 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
49 |
+
<ConfigurationType>StaticLibrary</ConfigurationType>
|
50 |
+
<UseDebugLibraries>false</UseDebugLibraries>
|
51 |
+
<PlatformToolset>v141</PlatformToolset>
|
52 |
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
53 |
+
<CharacterSet>MultiByte</CharacterSet>
|
54 |
+
</PropertyGroup>
|
55 |
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
56 |
+
<ImportGroup Label="ExtensionSettings">
|
57 |
+
</ImportGroup>
|
58 |
+
<ImportGroup Label="Shared">
|
59 |
+
</ImportGroup>
|
60 |
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
61 |
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
62 |
+
</ImportGroup>
|
63 |
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
64 |
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
65 |
+
</ImportGroup>
|
66 |
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
67 |
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
68 |
+
</ImportGroup>
|
69 |
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
70 |
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
71 |
+
</ImportGroup>
|
72 |
+
<PropertyGroup Label="UserMacros" />
|
73 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
74 |
+
<OutDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\app\$(Configuration)\</OutDir>
|
75 |
+
<IntDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\obj\$(ProjectName).dir\$(Configuration)\</IntDir>
|
76 |
+
<TargetExt>.lib</TargetExt>
|
77 |
+
</PropertyGroup>
|
78 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
79 |
+
<OutDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\app\$(Configuration)\</OutDir>
|
80 |
+
<IntDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\obj\$(ProjectName).dir\$(Configuration)\</IntDir>
|
81 |
+
<TargetExt>.lib</TargetExt>
|
82 |
+
</PropertyGroup>
|
83 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
84 |
+
<OutDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\app\$(Configuration)\</OutDir>
|
85 |
+
<IntDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\obj\$(ProjectName).dir\$(Configuration)\</IntDir>
|
86 |
+
<TargetExt>.lib</TargetExt>
|
87 |
+
</PropertyGroup>
|
88 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
89 |
+
<OutDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\app\$(Configuration)\</OutDir>
|
90 |
+
<IntDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\obj\$(ProjectName).dir\$(Configuration)\</IntDir>
|
91 |
+
<TargetExt>.lib</TargetExt>
|
92 |
+
</PropertyGroup>
|
93 |
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
94 |
+
<ClCompile>
|
95 |
+
<WarningLevel>Level3</WarningLevel>
|
96 |
+
<Optimization>Disabled</Optimization>
|
97 |
+
<SDLCheck>true</SDLCheck>
|
98 |
+
<ConformanceMode>true</ConformanceMode>
|
99 |
+
</ClCompile>
|
100 |
+
<Link>
|
101 |
+
<SubSystem>Console</SubSystem>
|
102 |
+
</Link>
|
103 |
+
<Lib>
|
104 |
+
<AdditionalDependencies>opencv_world330d.lib</AdditionalDependencies>
|
105 |
+
</Lib>
|
106 |
+
</ItemDefinitionGroup>
|
107 |
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
108 |
+
<ClCompile>
|
109 |
+
<WarningLevel>Level3</WarningLevel>
|
110 |
+
<Optimization>Disabled</Optimization>
|
111 |
+
<SDLCheck>true</SDLCheck>
|
112 |
+
<ConformanceMode>true</ConformanceMode>
|
113 |
+
</ClCompile>
|
114 |
+
<Link>
|
115 |
+
<SubSystem>Console</SubSystem>
|
116 |
+
</Link>
|
117 |
+
<Lib>
|
118 |
+
<AdditionalDependencies>opencv_world330d.lib</AdditionalDependencies>
|
119 |
+
</Lib>
|
120 |
+
</ItemDefinitionGroup>
|
121 |
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
122 |
+
<ClCompile>
|
123 |
+
<WarningLevel>Level3</WarningLevel>
|
124 |
+
<Optimization>MaxSpeed</Optimization>
|
125 |
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
126 |
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
127 |
+
<SDLCheck>true</SDLCheck>
|
128 |
+
<ConformanceMode>true</ConformanceMode>
|
129 |
+
</ClCompile>
|
130 |
+
<Link>
|
131 |
+
<SubSystem>Console</SubSystem>
|
132 |
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
133 |
+
<OptimizeReferences>true</OptimizeReferences>
|
134 |
+
</Link>
|
135 |
+
<Lib>
|
136 |
+
<AdditionalDependencies>opencv_world330.lib</AdditionalDependencies>
|
137 |
+
</Lib>
|
138 |
+
</ItemDefinitionGroup>
|
139 |
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
140 |
+
<ClCompile>
|
141 |
+
<WarningLevel>Level3</WarningLevel>
|
142 |
+
<Optimization>MaxSpeed</Optimization>
|
143 |
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
144 |
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
145 |
+
<SDLCheck>true</SDLCheck>
|
146 |
+
<ConformanceMode>true</ConformanceMode>
|
147 |
+
</ClCompile>
|
148 |
+
<Link>
|
149 |
+
<SubSystem>Console</SubSystem>
|
150 |
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
151 |
+
<OptimizeReferences>true</OptimizeReferences>
|
152 |
+
</Link>
|
153 |
+
<Lib>
|
154 |
+
<AdditionalDependencies>opencv_world330.lib</AdditionalDependencies>
|
155 |
+
</Lib>
|
156 |
+
</ItemDefinitionGroup>
|
157 |
+
<ItemGroup>
|
158 |
+
<ClInclude Include="..\include\seq_compensator.h" />
|
159 |
+
<ClInclude Include="..\src\sequence_compensator_imp.h" />
|
160 |
+
</ItemGroup>
|
161 |
+
<ItemGroup>
|
162 |
+
<ClCompile Include="..\src\sequence_compensator_imp.cpp" />
|
163 |
+
</ItemGroup>
|
164 |
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
165 |
+
<ImportGroup Label="ExtensionTargets">
|
166 |
+
</ImportGroup>
|
167 |
+
</Project>
|
libvideo_compensator/vcproj/VideoCompensator.vcxproj.filters
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3 |
+
<ItemGroup>
|
4 |
+
<Filter Include="Source Files">
|
5 |
+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
6 |
+
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
7 |
+
</Filter>
|
8 |
+
<Filter Include="Header Files">
|
9 |
+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
10 |
+
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
11 |
+
</Filter>
|
12 |
+
<Filter Include="Resource Files">
|
13 |
+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
14 |
+
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
15 |
+
</Filter>
|
16 |
+
<Filter Include="PrivateHeader">
|
17 |
+
<UniqueIdentifier>{73070e06-89f8-43b3-84a7-f08550662e97}</UniqueIdentifier>
|
18 |
+
</Filter>
|
19 |
+
</ItemGroup>
|
20 |
+
<ItemGroup>
|
21 |
+
<ClInclude Include="..\include\seq_compensator.h">
|
22 |
+
<Filter>Header Files</Filter>
|
23 |
+
</ClInclude>
|
24 |
+
<ClInclude Include="..\src\sequence_compensator_imp.h">
|
25 |
+
<Filter>PrivateHeader</Filter>
|
26 |
+
</ClInclude>
|
27 |
+
</ItemGroup>
|
28 |
+
<ItemGroup>
|
29 |
+
<ClCompile Include="..\src\sequence_compensator_imp.cpp">
|
30 |
+
<Filter>Source Files</Filter>
|
31 |
+
</ClCompile>
|
32 |
+
</ItemGroup>
|
33 |
+
</Project>
|
libvideo_compensator/vcproj/VideoCompensator.vcxproj.user
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3 |
+
<PropertyGroup />
|
4 |
+
</Project>
|
test/test_video_compensator/data/img_1.json
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
{
|
3 |
+
"X": 2357,
|
4 |
+
"Y": 1090,
|
5 |
+
"Width": 388,
|
6 |
+
"Height":231
|
7 |
+
},
|
8 |
+
{
|
9 |
+
"X": 1910,
|
10 |
+
"Y": 1829,
|
11 |
+
"Width": 285,
|
12 |
+
"Height":382
|
13 |
+
}
|
14 |
+
]
|
test/test_video_compensator/data/img_1.png
ADDED
![]() |
Git LFS Details
|
test/test_video_compensator/data/img_2.json
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
{
|
3 |
+
"X": 2267,
|
4 |
+
"Y": 1487,
|
5 |
+
"Width": 343,
|
6 |
+
"Height":278
|
7 |
+
},
|
8 |
+
{
|
9 |
+
"X": 1920,
|
10 |
+
"Y": 1830,
|
11 |
+
"Width": 249,
|
12 |
+
"Height":390
|
13 |
+
}
|
14 |
+
]
|
test/test_video_compensator/data/img_2.png
ADDED
![]() |
Git LFS Details
|
test/test_video_compensator/data/img_3.json
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
{
|
3 |
+
"X": 1206,
|
4 |
+
"Y": 1473,
|
5 |
+
"Width": 354,
|
6 |
+
"Height":288
|
7 |
+
},
|
8 |
+
{
|
9 |
+
"X": 2375,
|
10 |
+
"Y": 1086,
|
11 |
+
"Width": 332,
|
12 |
+
"Height":252
|
13 |
+
}
|
14 |
+
]
|
test/test_video_compensator/data/img_3.png
ADDED
![]() |
Git LFS Details
|
test/test_video_compensator/src/test_sequence_compensator.cpp
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#define CATCH_CONFIG_MAIN
|
2 |
+
#include "catch2/catch.hpp"
|
3 |
+
#include "test_utility.h"
|
4 |
+
|
5 |
+
namespace Ivs
|
6 |
+
{
|
7 |
+
SCENARIO("Test Init Sequence Compensator")
|
8 |
+
{
|
9 |
+
std::vector<TInputImageMeta> vecInputMeta;
|
10 |
+
|
11 |
+
}
|
12 |
+
|
13 |
+
SCENARIO("Test Background Recover Simple")
|
14 |
+
{
|
15 |
+
auto vecInputMeta = ReadImageMeta(strTestFolder);
|
16 |
+
|
17 |
+
auto pSeqCompensator = CreateSequenceCompensator();
|
18 |
+
|
19 |
+
for (auto& tMeta : vecInputMeta)
|
20 |
+
{
|
21 |
+
if (!pSeqCompensator->IsBackgroundRecover())
|
22 |
+
{
|
23 |
+
pSeqCompensator->SetInputMeta(tMeta);
|
24 |
+
pSeqCompensator->Process();
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
|
29 |
+
CHECK(pSeqCompensator->IsBackgroundRecover());
|
30 |
+
}
|
31 |
+
}
|
test/test_video_compensator/src/test_utility.h
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#pragma once
|
2 |
+
#include <string>
|
3 |
+
#include <filesystem>
|
4 |
+
#include <fstream>
|
5 |
+
#include "opencv2/highgui.hpp"
|
6 |
+
#include "opencv2/imgproc.hpp"
|
7 |
+
#include "jsoncpp/json/json.h"
|
8 |
+
#include "../../../libvideo_compensator/include/seq_compensator.h"
|
9 |
+
|
10 |
+
namespace fs = std::experimental::filesystem;
|
11 |
+
static const std::string strTestFolder{"D:\\myProject\\VideoCompensator\\test\\test_video_compensator\\data"};
|
12 |
+
|
13 |
+
namespace Ivs
|
14 |
+
{
|
15 |
+
inline std::vector<cv::Rect> LoadJsonMeta(const std::string& strFilePath)
|
16 |
+
{
|
17 |
+
std::ifstream fInput{ strFilePath };
|
18 |
+
Json::Value root;
|
19 |
+
Json::Reader reader;
|
20 |
+
std::vector<cv::Rect> vecRectObjects;
|
21 |
+
|
22 |
+
if (reader.parse(fInput, root))
|
23 |
+
{
|
24 |
+
for (auto& obj : root)
|
25 |
+
{
|
26 |
+
cv::Rect rectObject;
|
27 |
+
rectObject.x = obj["X"].asInt();
|
28 |
+
rectObject.y = obj["Y"].asInt();
|
29 |
+
rectObject.width = obj["Width"].asInt();
|
30 |
+
rectObject.height = obj["Height"].asInt();
|
31 |
+
vecRectObjects.emplace_back(rectObject);
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
return std::move(vecRectObjects);
|
36 |
+
}
|
37 |
+
|
38 |
+
inline std::vector<TInputImageMeta> ReadImageMeta(const std::string& strTestFolder)
|
39 |
+
{
|
40 |
+
std::vector<TInputImageMeta> vecSequenceInput;
|
41 |
+
auto itFiles = fs::directory_iterator{ strTestFolder };
|
42 |
+
|
43 |
+
for (auto& itFile : itFiles)
|
44 |
+
{
|
45 |
+
if (itFile.path().extension() == ".png")
|
46 |
+
{
|
47 |
+
TInputImageMeta tInput;
|
48 |
+
auto pathFile = itFile.path();
|
49 |
+
std::string strFileName = pathFile.stem().string();
|
50 |
+
auto pathJsonFile = pathFile.parent_path() / fs::path{ strFileName + ".json" };
|
51 |
+
|
52 |
+
tInput.matImage = cv::imread(itFile.path().string());
|
53 |
+
tInput.vecObjRegions = LoadJsonMeta(pathJsonFile.string());
|
54 |
+
|
55 |
+
for (auto& rect : tInput.vecObjRegions)
|
56 |
+
{
|
57 |
+
cv::rectangle(tInput.matImage, rect, { 255, 0, 0 });
|
58 |
+
}
|
59 |
+
|
60 |
+
vecSequenceInput.emplace_back(tInput);
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
return std::move(vecSequenceInput);
|
65 |
+
}
|
66 |
+
|
67 |
+
|
68 |
+
}
|
test/test_video_compensator/vcproj/test_video_compensator.vcxproj
ADDED
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3 |
+
<ItemGroup Label="ProjectConfigurations">
|
4 |
+
<ProjectConfiguration Include="Debug|Win32">
|
5 |
+
<Configuration>Debug</Configuration>
|
6 |
+
<Platform>Win32</Platform>
|
7 |
+
</ProjectConfiguration>
|
8 |
+
<ProjectConfiguration Include="Release|Win32">
|
9 |
+
<Configuration>Release</Configuration>
|
10 |
+
<Platform>Win32</Platform>
|
11 |
+
</ProjectConfiguration>
|
12 |
+
<ProjectConfiguration Include="Debug|x64">
|
13 |
+
<Configuration>Debug</Configuration>
|
14 |
+
<Platform>x64</Platform>
|
15 |
+
</ProjectConfiguration>
|
16 |
+
<ProjectConfiguration Include="Release|x64">
|
17 |
+
<Configuration>Release</Configuration>
|
18 |
+
<Platform>x64</Platform>
|
19 |
+
</ProjectConfiguration>
|
20 |
+
</ItemGroup>
|
21 |
+
<ItemGroup>
|
22 |
+
<ProjectReference Include="..\..\..\..\..\work\commlib\jsoncpp\makefiles\msvc2017\lib_json.vcxproj">
|
23 |
+
<Project>{1e6c2c1c-6453-4129-ae3f-0ee8e6599c89}</Project>
|
24 |
+
</ProjectReference>
|
25 |
+
<ProjectReference Include="..\..\..\libvideo_compensator\vcproj\VideoCompensator.vcxproj">
|
26 |
+
<Project>{a3f24ea0-d655-4c3c-be18-bdca0c3d425f}</Project>
|
27 |
+
</ProjectReference>
|
28 |
+
</ItemGroup>
|
29 |
+
<ItemGroup>
|
30 |
+
<ClCompile Include="..\src\test_sequence_compensator.cpp" />
|
31 |
+
</ItemGroup>
|
32 |
+
<ItemGroup>
|
33 |
+
<ClInclude Include="..\src\test_utility.h" />
|
34 |
+
</ItemGroup>
|
35 |
+
<PropertyGroup Label="Globals">
|
36 |
+
<VCProjectVersion>15.0</VCProjectVersion>
|
37 |
+
<ProjectGuid>{C5F0E919-E67E-41FD-8FAE-7464EF283EEF}</ProjectGuid>
|
38 |
+
<RootNamespace>testvideocompensator</RootNamespace>
|
39 |
+
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
|
40 |
+
</PropertyGroup>
|
41 |
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
42 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
43 |
+
<ConfigurationType>Application</ConfigurationType>
|
44 |
+
<UseDebugLibraries>true</UseDebugLibraries>
|
45 |
+
<PlatformToolset>v141</PlatformToolset>
|
46 |
+
<CharacterSet>MultiByte</CharacterSet>
|
47 |
+
</PropertyGroup>
|
48 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
49 |
+
<ConfigurationType>Application</ConfigurationType>
|
50 |
+
<UseDebugLibraries>false</UseDebugLibraries>
|
51 |
+
<PlatformToolset>v141</PlatformToolset>
|
52 |
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
53 |
+
<CharacterSet>MultiByte</CharacterSet>
|
54 |
+
</PropertyGroup>
|
55 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
56 |
+
<ConfigurationType>Application</ConfigurationType>
|
57 |
+
<UseDebugLibraries>true</UseDebugLibraries>
|
58 |
+
<PlatformToolset>v141</PlatformToolset>
|
59 |
+
<CharacterSet>MultiByte</CharacterSet>
|
60 |
+
</PropertyGroup>
|
61 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
62 |
+
<ConfigurationType>Application</ConfigurationType>
|
63 |
+
<UseDebugLibraries>false</UseDebugLibraries>
|
64 |
+
<PlatformToolset>v141</PlatformToolset>
|
65 |
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
66 |
+
<CharacterSet>MultiByte</CharacterSet>
|
67 |
+
</PropertyGroup>
|
68 |
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
69 |
+
<ImportGroup Label="ExtensionSettings">
|
70 |
+
</ImportGroup>
|
71 |
+
<ImportGroup Label="Shared">
|
72 |
+
</ImportGroup>
|
73 |
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
74 |
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
75 |
+
</ImportGroup>
|
76 |
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
77 |
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
78 |
+
</ImportGroup>
|
79 |
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
80 |
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
81 |
+
</ImportGroup>
|
82 |
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
83 |
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
84 |
+
</ImportGroup>
|
85 |
+
<PropertyGroup Label="UserMacros" />
|
86 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
87 |
+
<OutDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\app\$(Configuration)\</OutDir>
|
88 |
+
<IntDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\obj\$(ProjectName).dir\$(Configuration)\</IntDir>
|
89 |
+
</PropertyGroup>
|
90 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
91 |
+
<OutDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\app\$(Configuration)\</OutDir>
|
92 |
+
<IntDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\obj\$(ProjectName).dir\$(Configuration)\</IntDir>
|
93 |
+
</PropertyGroup>
|
94 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
95 |
+
<OutDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\app\$(Configuration)\</OutDir>
|
96 |
+
<IntDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\obj\$(ProjectName).dir\$(Configuration)\</IntDir>
|
97 |
+
</PropertyGroup>
|
98 |
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
99 |
+
<OutDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\app\$(Configuration)\</OutDir>
|
100 |
+
<IntDir>$(SolutionDir)$(SolutionName)_build\$(PlatformTarget)\obj\$(ProjectName).dir\$(Configuration)\</IntDir>
|
101 |
+
</PropertyGroup>
|
102 |
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
103 |
+
<ClCompile>
|
104 |
+
<WarningLevel>Level3</WarningLevel>
|
105 |
+
<Optimization>Disabled</Optimization>
|
106 |
+
<SDLCheck>true</SDLCheck>
|
107 |
+
<ConformanceMode>true</ConformanceMode>
|
108 |
+
</ClCompile>
|
109 |
+
<Link>
|
110 |
+
<SubSystem>Console</SubSystem>
|
111 |
+
<AdditionalDependencies>opencv_world330d.lib;%(AdditionalDependencies); vfw32.lib</AdditionalDependencies>
|
112 |
+
</Link>
|
113 |
+
</ItemDefinitionGroup>
|
114 |
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
115 |
+
<ClCompile>
|
116 |
+
<WarningLevel>Level3</WarningLevel>
|
117 |
+
<Optimization>Disabled</Optimization>
|
118 |
+
<SDLCheck>true</SDLCheck>
|
119 |
+
<ConformanceMode>true</ConformanceMode>
|
120 |
+
</ClCompile>
|
121 |
+
<Link>
|
122 |
+
<SubSystem>Console</SubSystem>
|
123 |
+
<AdditionalDependencies>opencv_world330d.lib;%(AdditionalDependencies); vfw32.lib</AdditionalDependencies>
|
124 |
+
</Link>
|
125 |
+
</ItemDefinitionGroup>
|
126 |
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
127 |
+
<ClCompile>
|
128 |
+
<WarningLevel>Level3</WarningLevel>
|
129 |
+
<Optimization>MaxSpeed</Optimization>
|
130 |
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
131 |
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
132 |
+
<SDLCheck>true</SDLCheck>
|
133 |
+
<ConformanceMode>true</ConformanceMode>
|
134 |
+
</ClCompile>
|
135 |
+
<Link>
|
136 |
+
<SubSystem>Console</SubSystem>
|
137 |
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
138 |
+
<OptimizeReferences>true</OptimizeReferences>
|
139 |
+
<AdditionalDependencies>opencv_world330.lib;%(AdditionalDependencies);vfw32.lib</AdditionalDependencies>
|
140 |
+
</Link>
|
141 |
+
</ItemDefinitionGroup>
|
142 |
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
143 |
+
<ClCompile>
|
144 |
+
<WarningLevel>Level3</WarningLevel>
|
145 |
+
<Optimization>MaxSpeed</Optimization>
|
146 |
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
147 |
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
148 |
+
<SDLCheck>true</SDLCheck>
|
149 |
+
<ConformanceMode>true</ConformanceMode>
|
150 |
+
</ClCompile>
|
151 |
+
<Link>
|
152 |
+
<SubSystem>Console</SubSystem>
|
153 |
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
154 |
+
<OptimizeReferences>true</OptimizeReferences>
|
155 |
+
<AdditionalDependencies>opencv_world330.lib;%(AdditionalDependencies);vfw32.lib</AdditionalDependencies>
|
156 |
+
</Link>
|
157 |
+
</ItemDefinitionGroup>
|
158 |
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
159 |
+
<ImportGroup Label="ExtensionTargets">
|
160 |
+
</ImportGroup>
|
161 |
+
</Project>
|
test/test_video_compensator/vcproj/test_video_compensator.vcxproj.filters
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3 |
+
<ItemGroup>
|
4 |
+
<Filter Include="Source Files">
|
5 |
+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
6 |
+
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
7 |
+
</Filter>
|
8 |
+
<Filter Include="Header Files">
|
9 |
+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
10 |
+
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
11 |
+
</Filter>
|
12 |
+
<Filter Include="Resource Files">
|
13 |
+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
14 |
+
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
15 |
+
</Filter>
|
16 |
+
</ItemGroup>
|
17 |
+
<ItemGroup>
|
18 |
+
<ClCompile Include="..\src\test_sequence_compensator.cpp">
|
19 |
+
<Filter>Source Files</Filter>
|
20 |
+
</ClCompile>
|
21 |
+
</ItemGroup>
|
22 |
+
<ItemGroup>
|
23 |
+
<ClInclude Include="..\src\test_utility.h">
|
24 |
+
<Filter>Header Files</Filter>
|
25 |
+
</ClInclude>
|
26 |
+
</ItemGroup>
|
27 |
+
</Project>
|
test/test_video_compensator/vcproj/test_video_compensator.vcxproj.user
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3 |
+
<PropertyGroup />
|
4 |
+
</Project>
|