Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
1f8fd538
Commit
1f8fd538
authored
Mar 24, 2016
by
Vladislav Sovrasov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace of some synthetic scenes in python samples
parent
e792ee89
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
156 additions
and
8 deletions
+156
-8
camshift.py
samples/python/camshift.py
+2
-1
feature_homography.py
samples/python/feature_homography.py
+2
-1
lk_homography.py
samples/python/lk_homography.py
+2
-1
plane_ar.py
samples/python/plane_ar.py
+2
-2
plane_tracker.py
samples/python/plane_tracker.py
+2
-1
tst_scene_render.py
samples/python/tst_scene_render.py
+117
-0
video.py
samples/python/video.py
+29
-2
No files found.
samples/python/camshift.py
View file @
1f8fd538
...
...
@@ -35,11 +35,12 @@ import cv2
# local module
import
video
from
video
import
presets
class
App
(
object
):
def
__init__
(
self
,
video_src
):
self
.
cam
=
video
.
create_capture
(
video_src
)
self
.
cam
=
video
.
create_capture
(
video_src
,
presets
[
'cube'
]
)
ret
,
self
.
frame
=
self
.
cam
.
read
()
cv2
.
namedWindow
(
'camshift'
)
cv2
.
setMouseCallback
(
'camshift'
,
self
.
onmouse
)
...
...
samples/python/feature_homography.py
View file @
1f8fd538
...
...
@@ -30,6 +30,7 @@ import cv2
# local modules
import
video
from
video
import
presets
import
common
from
common
import
getsize
,
draw_keypoints
from
plane_tracker
import
PlaneTracker
...
...
@@ -37,7 +38,7 @@ from plane_tracker import PlaneTracker
class
App
:
def
__init__
(
self
,
src
):
self
.
cap
=
video
.
create_capture
(
src
)
self
.
cap
=
video
.
create_capture
(
src
,
presets
[
'book'
]
)
self
.
frame
=
None
self
.
paused
=
False
self
.
tracker
=
PlaneTracker
()
...
...
samples/python/lk_homography.py
View file @
1f8fd538
...
...
@@ -27,6 +27,7 @@ import numpy as np
import
cv2
import
video
from
common
import
draw_str
from
video
import
presets
lk_params
=
dict
(
winSize
=
(
19
,
19
),
maxLevel
=
2
,
...
...
@@ -49,7 +50,7 @@ red = (0, 0, 255)
class
App
:
def
__init__
(
self
,
video_src
):
self
.
cam
=
video
.
create_capture
(
video_src
)
self
.
cam
=
self
.
cam
=
video
.
create_capture
(
video_src
,
presets
[
'book'
]
)
self
.
p0
=
None
self
.
use_ransac
=
True
...
...
samples/python/plane_ar.py
View file @
1f8fd538
...
...
@@ -30,7 +30,7 @@ import cv2
import
video
import
common
from
plane_tracker
import
PlaneTracker
from
video
import
presets
ar_verts
=
np
.
float32
([[
0
,
0
,
0
],
[
0
,
1
,
0
],
[
1
,
1
,
0
],
[
1
,
0
,
0
],
[
0
,
0
,
1
],
[
0
,
1
,
1
],
[
1
,
1
,
1
],
[
1
,
0
,
1
],
...
...
@@ -42,7 +42,7 @@ ar_edges = [(0, 1), (1, 2), (2, 3), (3, 0),
class
App
:
def
__init__
(
self
,
src
):
self
.
cap
=
video
.
create_capture
(
src
)
self
.
cap
=
video
.
create_capture
(
src
,
presets
[
'book'
]
)
self
.
frame
=
None
self
.
paused
=
False
self
.
tracker
=
PlaneTracker
()
...
...
samples/python/plane_tracker.py
View file @
1f8fd538
...
...
@@ -38,6 +38,7 @@ from collections import namedtuple
# local modules
import
video
import
common
from
video
import
presets
FLANN_INDEX_KDTREE
=
1
...
...
@@ -139,7 +140,7 @@ class PlaneTracker:
class
App
:
def
__init__
(
self
,
src
):
self
.
cap
=
video
.
create_capture
(
src
)
self
.
cap
=
video
.
create_capture
(
src
,
presets
[
'book'
]
)
self
.
frame
=
None
self
.
paused
=
False
self
.
tracker
=
PlaneTracker
()
...
...
samples/python/tst_scene_render.py
0 → 100644
View file @
1f8fd538
#!/usr/bin/env python
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
from
numpy
import
pi
,
sin
,
cos
import
cv2
defaultSize
=
512
class
TestSceneRender
():
def
__init__
(
self
,
bgImg
=
None
,
fgImg
=
None
,
deformation
=
False
,
speed
=
0.25
,
**
params
):
self
.
time
=
0.0
self
.
timeStep
=
1.0
/
30.0
self
.
foreground
=
fgImg
self
.
deformation
=
deformation
self
.
speed
=
speed
if
bgImg
!=
None
:
self
.
sceneBg
=
bgImg
.
copy
()
else
:
self
.
sceneBg
=
np
.
zeros
(
defaultSize
,
defaultSize
,
np
.
uint8
)
self
.
w
=
self
.
sceneBg
.
shape
[
0
]
self
.
h
=
self
.
sceneBg
.
shape
[
1
]
if
fgImg
!=
None
:
self
.
foreground
=
fgImg
.
copy
()
self
.
center
=
self
.
currentCenter
=
(
int
(
self
.
w
/
2
-
fgImg
.
shape
[
0
]
/
2
),
int
(
self
.
h
/
2
-
fgImg
.
shape
[
1
]
/
2
))
self
.
xAmpl
=
self
.
sceneBg
.
shape
[
0
]
-
(
self
.
center
[
0
]
+
fgImg
.
shape
[
0
])
self
.
yAmpl
=
self
.
sceneBg
.
shape
[
1
]
-
(
self
.
center
[
1
]
+
fgImg
.
shape
[
1
])
self
.
initialRect
=
np
.
array
([
(
self
.
h
/
2
,
self
.
w
/
2
),
(
self
.
h
/
2
,
self
.
w
/
2
+
self
.
w
/
10
),
(
self
.
h
/
2
+
self
.
h
/
10
,
self
.
w
/
2
+
self
.
w
/
10
),
(
self
.
h
/
2
+
self
.
h
/
10
,
self
.
w
/
2
)])
.
astype
(
int
)
self
.
currentRect
=
self
.
initialRect
def
getXOffset
(
self
,
time
):
return
int
(
self
.
xAmpl
*
cos
(
time
*
self
.
speed
))
def
getYOffset
(
self
,
time
):
return
int
(
self
.
yAmpl
*
sin
(
time
*
self
.
speed
))
def
setInitialRect
(
self
,
rect
):
self
.
initialRect
=
rect
def
getRectInTime
(
self
,
time
):
if
self
.
foreground
!=
None
:
tmp
=
np
.
array
(
self
.
center
)
+
np
.
array
((
self
.
getXOffset
(
time
),
self
.
getYOffset
(
time
)))
x0
,
y0
=
tmp
x1
,
y1
=
tmp
+
self
.
foreground
.
shape
[
0
:
2
]
return
np
.
array
([
y0
,
x0
,
y1
,
x1
])
else
:
x0
,
y0
=
self
.
initialRect
[
0
]
+
np
.
array
((
self
.
getXOffset
(
time
),
self
.
getYOffset
(
time
)))
x1
,
y1
=
self
.
initialRect
[
2
]
+
np
.
array
((
self
.
getXOffset
(
time
),
self
.
getYOffset
(
time
)))
return
np
.
array
([
y0
,
x0
,
y1
,
x1
])
def
getCurrentRect
(
self
):
if
self
.
foreground
!=
None
:
x0
=
self
.
currentCenter
[
0
]
y0
=
self
.
currentCenter
[
1
]
x1
=
self
.
currentCenter
[
0
]
+
self
.
foreground
.
shape
[
0
]
y1
=
self
.
currentCenter
[
1
]
+
self
.
foreground
.
shape
[
1
]
return
np
.
array
([
y0
,
x0
,
y1
,
x1
])
else
:
x0
,
y0
=
self
.
currentRect
[
0
]
x1
,
y1
=
self
.
currentRect
[
2
]
return
np
.
array
([
x0
,
y0
,
x1
,
y1
])
def
getNextFrame
(
self
):
img
=
self
.
sceneBg
.
copy
()
if
self
.
foreground
!=
None
:
self
.
currentCenter
=
(
self
.
center
[
0
]
+
self
.
getXOffset
(
self
.
time
),
self
.
center
[
1
]
+
self
.
getYOffset
(
self
.
time
))
img
[
self
.
currentCenter
[
0
]:
self
.
currentCenter
[
0
]
+
self
.
foreground
.
shape
[
0
],
self
.
currentCenter
[
1
]:
self
.
currentCenter
[
1
]
+
self
.
foreground
.
shape
[
1
]]
=
self
.
foreground
else
:
self
.
currentRect
=
self
.
initialRect
+
np
.
int
(
30
*
cos
(
self
.
time
*
self
.
speed
)
+
50
*
sin
(
self
.
time
*
self
.
speed
))
if
self
.
deformation
:
self
.
currentRect
[
1
:
3
]
+=
self
.
h
/
20
*
cos
(
self
.
time
)
cv2
.
fillConvexPoly
(
img
,
self
.
currentRect
,
(
0
,
0
,
255
))
self
.
time
+=
self
.
timeStep
return
img
def
resetTime
(
self
):
self
.
time
=
0.0
if
__name__
==
'__main__'
:
backGr
=
cv2
.
imread
(
'../data/graf1.png'
)
fgr
=
cv2
.
imread
(
'../data/box.png'
)
render
=
TestSceneRender
(
backGr
,
fgr
)
while
True
:
img
=
render
.
getNextFrame
()
cv2
.
imshow
(
'img'
,
img
)
ch
=
0xFF
&
cv2
.
waitKey
(
3
)
if
ch
==
27
:
break
#import os
#print (os.environ['PYTHONPATH'])
cv2
.
destroyAllWindows
()
\ No newline at end of file
samples/python/video.py
View file @
1f8fd538
...
...
@@ -41,6 +41,7 @@ import cv2
from
time
import
clock
# local modules
from
tst_scene_render
import
TestSceneRender
import
common
class
VideoSynthBase
(
object
):
...
...
@@ -81,6 +82,30 @@ class VideoSynthBase(object):
def
isOpened
(
self
):
return
True
class
Book
(
VideoSynthBase
):
def
__init__
(
self
,
**
kw
):
super
(
Book
,
self
)
.
__init__
(
**
kw
)
backGr
=
cv2
.
imread
(
'../data/graf1.png'
)
fgr
=
cv2
.
imread
(
'../data/box.png'
)
self
.
render
=
TestSceneRender
(
backGr
,
fgr
,
speed
=
1
)
def
read
(
self
,
dst
=
None
):
noise
=
np
.
zeros
(
self
.
render
.
sceneBg
.
shape
,
np
.
int8
)
cv2
.
randn
(
noise
,
np
.
zeros
(
3
),
np
.
ones
(
3
)
*
255
*
self
.
noise
)
return
True
,
cv2
.
add
(
self
.
render
.
getNextFrame
(),
noise
,
dtype
=
cv2
.
CV_8UC3
)
class
Cube
(
VideoSynthBase
):
def
__init__
(
self
,
**
kw
):
super
(
Cube
,
self
)
.
__init__
(
**
kw
)
self
.
render
=
TestSceneRender
(
cv2
.
imread
(
'../data/pca_test1.jpg'
),
deformation
=
True
,
speed
=
1
)
def
read
(
self
,
dst
=
None
):
noise
=
np
.
zeros
(
self
.
render
.
sceneBg
.
shape
,
np
.
int8
)
cv2
.
randn
(
noise
,
np
.
zeros
(
3
),
np
.
ones
(
3
)
*
255
*
self
.
noise
)
return
True
,
cv2
.
add
(
self
.
render
.
getNextFrame
(),
noise
,
dtype
=
cv2
.
CV_8UC3
)
class
Chess
(
VideoSynthBase
):
def
__init__
(
self
,
**
kw
):
super
(
Chess
,
self
)
.
__init__
(
**
kw
)
...
...
@@ -129,12 +154,14 @@ class Chess(VideoSynthBase):
self
.
draw_quads
(
dst
,
self
.
black_quads
,
(
10
,
10
,
10
))
classes
=
dict
(
chess
=
Chess
)
classes
=
dict
(
chess
=
Chess
,
book
=
Book
,
cube
=
Cube
)
presets
=
dict
(
empty
=
'synth:'
,
lena
=
'synth:bg=../data/lena.jpg:noise=0.1'
,
chess
=
'synth:class=chess:bg=../data/lena.jpg:noise=0.1:size=640x480'
chess
=
'synth:class=chess:bg=../data/lena.jpg:noise=0.1:size=640x480'
,
book
=
'synth:class=book:bg=../data/graf1.png:noise=0.1:size=640x480'
,
cube
=
'synth:class=cube:bg=../data/pca_test1.jpg:noise=0.0:size=640x480'
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment