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
04fad57f
Commit
04fad57f
authored
Mar 19, 2019
by
Alexander Alekhin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
samples: fix python samples compatibility with demo.py
parent
f4c2c441
Show whitespace changes
Inline
Side-by-side
Showing
48 changed files
with
551 additions
and
276 deletions
+551
-276
asift.py
samples/python/asift.py
+7
-2
browse.py
samples/python/browse.py
+7
-5
calibrate.py
samples/python/calibrate.py
+7
-1
camera_calibration_show_extrinsics.py
samples/python/camera_calibration_show_extrinsics.py
+17
-6
camshift.py
samples/python/camshift.py
+1
-1
coherence.py
samples/python/coherence.py
+8
-1
color_histogram.py
samples/python/color_histogram.py
+18
-7
contours.py
samples/python/contours.py
+7
-3
deconvolution.py
samples/python/deconvolution.py
+9
-2
dft.py
samples/python/dft.py
+9
-2
digits.py
samples/python/digits.py
+3
-3
digits_adjust.py
samples/python/digits_adjust.py
+1
-0
digits_video.py
samples/python/digits_video.py
+4
-0
distrans.py
samples/python/distrans.py
+8
-2
edge.py
samples/python/edge.py
+8
-3
facedetect.py
samples/python/facedetect.py
+8
-2
find_obj.py
samples/python/find_obj.py
+9
-3
fitline.py
samples/python/fitline.py
+9
-3
floodfill.py
samples/python/floodfill.py
+48
-40
gabor_threads.py
samples/python/gabor_threads.py
+8
-2
gaussian_mix.py
samples/python/gaussian_mix.py
+10
-2
grabcut.py
samples/python/grabcut.py
+92
-86
hist.py
samples/python/hist.py
+9
-3
houghcircles.py
samples/python/houghcircles.py
+10
-4
houghlines.py
samples/python/houghlines.py
+9
-3
inpaint.py
samples/python/inpaint.py
+9
-3
kalman.py
samples/python/kalman.py
+10
-3
kmeans.py
samples/python/kmeans.py
+9
-4
lappyr.py
samples/python/lappyr.py
+10
-2
letter_recog.py
samples/python/letter_recog.py
+8
-3
lk_homography.py
samples/python/lk_homography.py
+5
-2
lk_track.py
samples/python/lk_track.py
+5
-2
logpolar.py
samples/python/logpolar.py
+9
-3
morphology.py
samples/python/morphology.py
+8
-3
mouse_and_match.py
samples/python/mouse_and_match.py
+32
-27
mser.py
samples/python/mser.py
+12
-1
opencv_version.py
samples/python/opencv_version.py
+10
-2
opt_flow.py
samples/python/opt_flow.py
+9
-2
peopledetect.py
samples/python/peopledetect.py
+8
-3
squares.py
samples/python/squares.py
+9
-1
stereo_match.py
samples/python/stereo_match.py
+8
-1
texture_flow.py
samples/python/texture_flow.py
+9
-1
tst_scene_render.py
samples/python/tst_scene_render.py
+11
-6
turing.py
samples/python/turing.py
+8
-1
video.py
samples/python/video.py
+3
-3
video_threaded.py
samples/python/video_threaded.py
+9
-4
video_v4l2.py
samples/python/video_v4l2.py
+23
-12
watershed.py
samples/python/watershed.py
+1
-1
No files found.
samples/python/asift.py
View file @
04fad57f
...
...
@@ -106,9 +106,8 @@ def affine_detect(detector, img, mask=None, pool=None):
print
()
return
keypoints
,
np
.
array
(
descrs
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
import
sys
,
getopt
opts
,
args
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
''
,
[
'feature='
])
opts
=
dict
(
opts
)
...
...
@@ -160,4 +159,10 @@ if __name__ == '__main__':
match_and_draw
(
'affine find_obj'
)
cv
.
waitKey
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/browse.py
View file @
04fad57f
...
...
@@ -26,11 +26,7 @@ import cv2 as cv
# built-in modules
import
sys
if
__name__
==
'__main__'
:
print
(
'This sample shows how to implement a simple hi resolution image navigation.'
)
print
(
'USAGE: browse.py [image filename]'
)
print
()
def
main
():
if
len
(
sys
.
argv
)
>
1
:
fn
=
cv
.
samples
.
findFile
(
sys
.
argv
[
1
])
print
(
'loading
%
s ...'
%
fn
)
...
...
@@ -62,4 +58,10 @@ if __name__ == '__main__':
cv
.
imshow
(
'preview'
,
small
)
cv
.
setMouseCallback
(
'preview'
,
onmouse
)
cv
.
waitKey
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/calibrate.py
View file @
04fad57f
...
...
@@ -25,7 +25,7 @@ from common import splitfn
# built-in modules
import
os
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
import
getopt
from
glob
import
glob
...
...
@@ -126,4 +126,10 @@ if __name__ == '__main__':
print
(
'Undistorted image written to:
%
s'
%
outfile
)
cv
.
imwrite
(
outfile
,
dst
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/camera_calibration_show_extrinsics.py
View file @
04fad57f
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from
mpl_toolkits.mplot3d
import
Axes3D
import
matplotlib.pyplot
as
plt
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
from
matplotlib
import
cm
from
numpy
import
linspace
import
argparse
import
cv2
as
cv
from
numpy
import
linspace
def
inverse_homogeneoux_matrix
(
M
):
R
=
M
[
0
:
3
,
0
:
3
]
T
=
M
[
0
:
3
,
3
]
...
...
@@ -119,6 +119,8 @@ def create_board_model(extrinsics, board_width, board_height, square_size, draw_
def
draw_camera_boards
(
ax
,
camera_matrix
,
cam_width
,
cam_height
,
scale_focal
,
extrinsics
,
board_width
,
board_height
,
square_size
,
patternCentric
):
from
matplotlib
import
cm
min_values
=
np
.
zeros
((
3
,
1
))
min_values
=
np
.
inf
max_values
=
np
.
zeros
((
3
,
1
))
...
...
@@ -158,6 +160,8 @@ def draw_camera_boards(ax, camera_matrix, cam_width, cam_height, scale_focal,
return
min_values
,
max_values
def
main
():
import
argparse
parser
=
argparse
.
ArgumentParser
(
description
=
'Plot camera calibration extrinsics.'
,
formatter_class
=
argparse
.
ArgumentDefaultsHelpFormatter
)
parser
.
add_argument
(
'--calibration'
,
type
=
str
,
default
=
'left_intrinsics.yml'
,
...
...
@@ -179,6 +183,9 @@ def main():
camera_matrix
=
fs
.
getNode
(
'camera_matrix'
)
.
mat
()
extrinsics
=
fs
.
getNode
(
'extrinsic_parameters'
)
.
mat
()
import
matplotlib.pyplot
as
plt
from
mpl_toolkits.mplot3d
import
Axes3D
fig
=
plt
.
figure
()
ax
=
fig
.
gca
(
projection
=
'3d'
)
ax
.
set_aspect
(
"equal"
)
...
...
@@ -211,6 +218,10 @@ def main():
ax
.
set_title
(
'Extrinsic Parameters Visualization'
)
plt
.
show
()
print
(
'Done'
)
if
__name__
==
"__main__"
:
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/camshift.py
View file @
04fad57f
...
...
@@ -119,10 +119,10 @@ class App(object):
if
__name__
==
'__main__'
:
print
(
__doc__
)
import
sys
try
:
video_src
=
sys
.
argv
[
1
]
except
:
video_src
=
0
print
(
__doc__
)
App
(
video_src
)
.
run
()
samples/python/coherence.py
View file @
04fad57f
...
...
@@ -46,7 +46,7 @@ def coherence_filter(img, sigma = 11, str_sigma = 11, blend = 0.5, iter_n = 4):
return
img
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
try
:
fn
=
sys
.
argv
[
1
]
...
...
@@ -82,4 +82,11 @@ if __name__ == '__main__':
update
()
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/color_histogram.py
View file @
04fad57f
...
...
@@ -8,6 +8,9 @@ Keys:
'''
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
import
cv2
as
cv
...
...
@@ -17,8 +20,12 @@ import sys
# local modules
import
video
if
__name__
==
'__main__'
:
class
App
()
:
def
set_scale
(
self
,
val
):
self
.
hist_scale
=
val
def
run
(
self
):
hsv_map
=
np
.
zeros
((
180
,
256
,
3
),
np
.
uint8
)
h
,
s
=
np
.
indices
(
hsv_map
.
shape
[:
2
])
hsv_map
[:,:,
0
]
=
h
...
...
@@ -28,12 +35,9 @@ if __name__ == '__main__':
cv
.
imshow
(
'hsv_map'
,
hsv_map
)
cv
.
namedWindow
(
'hist'
,
0
)
hist_scale
=
10
self
.
hist_scale
=
10
def
set_scale
(
val
):
global
hist_scale
hist_scale
=
val
cv
.
createTrackbar
(
'scale'
,
'hist'
,
hist_scale
,
32
,
set_scale
)
cv
.
createTrackbar
(
'scale'
,
'hist'
,
self
.
hist_scale
,
32
,
self
.
set_scale
)
try
:
fn
=
sys
.
argv
[
1
]
...
...
@@ -52,11 +56,18 @@ if __name__ == '__main__':
hsv
[
dark
]
=
0
h
=
cv
.
calcHist
([
hsv
],
[
0
,
1
],
None
,
[
180
,
256
],
[
0
,
180
,
0
,
256
])
h
=
np
.
clip
(
h
*
0.005
*
hist_scale
,
0
,
1
)
h
=
np
.
clip
(
h
*
0.005
*
self
.
hist_scale
,
0
,
1
)
vis
=
hsv_map
*
h
[:,:,
np
.
newaxis
]
/
255.0
cv
.
imshow
(
'hist'
,
vis
)
ch
=
cv
.
waitKey
(
1
)
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
App
()
.
run
()
cv
.
destroyAllWindows
()
samples/python/contours.py
View file @
04fad57f
...
...
@@ -48,9 +48,7 @@ def make_image():
cv
.
ellipse
(
img
,
(
dx
+
273
,
dy
+
100
),
(
20
,
35
),
0
,
0
,
360
,
white
,
-
1
)
return
img
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
img
=
make_image
()
h
,
w
=
img
.
shape
[:
2
]
...
...
@@ -67,4 +65,10 @@ if __name__ == '__main__':
cv
.
createTrackbar
(
"levels+3"
,
"contours"
,
3
,
7
,
update
)
cv
.
imshow
(
'image'
,
img
)
cv
.
waitKey
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/deconvolution.py
View file @
04fad57f
...
...
@@ -65,8 +65,7 @@ def defocus_kernel(d, sz=65):
return
kern
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
import
sys
,
getopt
opts
,
args
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
''
,
[
'circle'
,
'angle='
,
'd='
,
'snr='
])
opts
=
dict
(
opts
)
...
...
@@ -128,3 +127,11 @@ if __name__ == '__main__':
if
ch
==
ord
(
' '
):
defocus
=
not
defocus
update
(
None
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/dft.py
View file @
04fad57f
...
...
@@ -11,8 +11,9 @@ USAGE:
# Python 2/3 compatibility
from
__future__
import
print_function
import
cv2
as
cv
import
numpy
as
np
import
cv2
as
cv
import
sys
...
...
@@ -62,8 +63,8 @@ def shift_dft(src, dst=None):
return
dst
if
__name__
==
"__main__"
:
def
main
():
if
len
(
sys
.
argv
)
>
1
:
fname
=
sys
.
argv
[
1
]
else
:
...
...
@@ -110,4 +111,10 @@ if __name__ == "__main__":
cv
.
imshow
(
"magnitude"
,
log_spectrum
)
cv
.
waitKey
(
0
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/digits.py
View file @
04fad57f
...
...
@@ -27,12 +27,12 @@ Usage:
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
import
cv2
as
cv
# built-in modules
from
multiprocessing.pool
import
ThreadPool
import
cv2
as
cv
import
numpy
as
np
from
numpy.linalg
import
norm
# local modules
...
...
samples/python/digits_adjust.py
View file @
04fad57f
...
...
@@ -23,6 +23,7 @@ if PY3:
import
numpy
as
np
import
cv2
as
cv
from
multiprocessing.pool
import
ThreadPool
from
digits
import
*
...
...
samples/python/digits_video.py
View file @
04fad57f
...
...
@@ -96,6 +96,10 @@ def main():
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/distrans.py
View file @
04fad57f
...
...
@@ -19,13 +19,12 @@ import cv2 as cv
from
common
import
make_cmap
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
try
:
fn
=
sys
.
argv
[
1
]
except
:
fn
=
'fruits.jpg'
print
(
__doc__
)
fn
=
cv
.
samples
.
findFile
(
fn
)
img
=
cv
.
imread
(
fn
,
cv
.
IMREAD_GRAYSCALE
)
...
...
@@ -69,4 +68,11 @@ if __name__ == '__main__':
update
()
if
need_update
:
update
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/edge.py
View file @
04fad57f
...
...
@@ -23,9 +23,7 @@ import video
import
sys
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
try
:
fn
=
sys
.
argv
[
1
]
except
:
...
...
@@ -52,4 +50,11 @@ if __name__ == '__main__':
ch
=
cv
.
waitKey
(
5
)
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/facedetect.py
View file @
04fad57f
...
...
@@ -30,9 +30,8 @@ def draw_rects(img, rects, color):
for
x1
,
y1
,
x2
,
y2
in
rects
:
cv
.
rectangle
(
img
,
(
x1
,
y1
),
(
x2
,
y2
),
color
,
2
)
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
,
getopt
print
(
__doc__
)
args
,
video_src
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
''
,
[
'cascade='
,
'nested-cascade='
])
try
:
...
...
@@ -70,4 +69,11 @@ if __name__ == '__main__':
if
cv
.
waitKey
(
5
)
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/find_obj.py
View file @
04fad57f
...
...
@@ -19,6 +19,7 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
from
common
import
anorm
,
getsize
FLANN_INDEX_KDTREE
=
1
# bug: flann enums are missing
...
...
@@ -137,9 +138,7 @@ def explore_match(win, img1, img2, kp_pairs, status = None, H = None):
return
vis
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
import
sys
,
getopt
opts
,
args
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
''
,
[
'feature='
])
opts
=
dict
(
opts
)
...
...
@@ -187,4 +186,11 @@ if __name__ == '__main__':
match_and_draw
(
'find_obj'
)
cv
.
waitKey
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/fitline.py
View file @
04fad57f
...
...
@@ -79,9 +79,7 @@ def update(_=None):
draw_str
(
img
,
(
20
,
20
),
cur_func_name
)
cv
.
imshow
(
'fit line'
,
img
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
cv
.
namedWindow
(
'fit line'
)
cv
.
createTrackbar
(
'noise'
,
'fit line'
,
3
,
50
,
update
)
cv
.
createTrackbar
(
'point n'
,
'fit line'
,
100
,
500
,
update
)
...
...
@@ -96,3 +94,11 @@ if __name__ == '__main__':
cur_func_name
=
dist_func_names
.
next
()
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/floodfill.py
View file @
04fad57f
...
...
@@ -20,61 +20,69 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
if
__name__
==
'__main__'
:
import
sys
try
:
fn
=
sys
.
argv
[
1
]
except
:
fn
=
'fruits.jpg'
print
(
__doc__
)
import
sys
img
=
cv
.
imread
(
cv
.
samples
.
findFile
(
fn
))
if
img
is
None
:
print
(
'Failed to load image file:'
,
fn
)
sys
.
exit
(
1
)
h
,
w
=
img
.
shape
[:
2
]
mask
=
np
.
zeros
((
h
+
2
,
w
+
2
),
np
.
uint8
)
seed_pt
=
None
fixed_range
=
True
connectivity
=
4
class
App
():
def
update
(
dummy
=
None
):
if
seed_pt
is
None
:
cv
.
imshow
(
'floodfill'
,
img
)
def
update
(
self
,
dummy
=
None
):
if
se
lf
.
se
ed_pt
is
None
:
cv
.
imshow
(
'floodfill'
,
self
.
img
)
return
flooded
=
img
.
copy
()
mask
[:]
=
0
flooded
=
self
.
img
.
copy
()
self
.
mask
[:]
=
0
lo
=
cv
.
getTrackbarPos
(
'lo'
,
'floodfill'
)
hi
=
cv
.
getTrackbarPos
(
'hi'
,
'floodfill'
)
flags
=
connectivity
if
fixed_range
:
flags
=
self
.
connectivity
if
self
.
fixed_range
:
flags
|=
cv
.
FLOODFILL_FIXED_RANGE
cv
.
floodFill
(
flooded
,
mask
,
seed_pt
,
(
255
,
255
,
255
),
(
lo
,)
*
3
,
(
hi
,)
*
3
,
flags
)
cv
.
circle
(
flooded
,
seed_pt
,
2
,
(
0
,
0
,
255
),
-
1
)
cv
.
floodFill
(
flooded
,
self
.
mask
,
self
.
seed_pt
,
(
255
,
255
,
255
),
(
lo
,)
*
3
,
(
hi
,)
*
3
,
flags
)
cv
.
circle
(
flooded
,
se
lf
.
se
ed_pt
,
2
,
(
0
,
0
,
255
),
-
1
)
cv
.
imshow
(
'floodfill'
,
flooded
)
def
onmouse
(
event
,
x
,
y
,
flags
,
param
):
global
seed_pt
def
onmouse
(
self
,
event
,
x
,
y
,
flags
,
param
):
if
flags
&
cv
.
EVENT_FLAG_LBUTTON
:
seed_pt
=
x
,
y
update
()
se
lf
.
se
ed_pt
=
x
,
y
self
.
update
()
update
()
cv
.
setMouseCallback
(
'floodfill'
,
onmouse
)
cv
.
createTrackbar
(
'lo'
,
'floodfill'
,
20
,
255
,
update
)
cv
.
createTrackbar
(
'hi'
,
'floodfill'
,
20
,
255
,
update
)
def
run
(
self
):
try
:
fn
=
sys
.
argv
[
1
]
except
:
fn
=
'fruits.jpg'
self
.
img
=
cv
.
imread
(
cv
.
samples
.
findFile
(
fn
))
if
self
.
img
is
None
:
print
(
'Failed to load image file:'
,
fn
)
sys
.
exit
(
1
)
h
,
w
=
self
.
img
.
shape
[:
2
]
self
.
mask
=
np
.
zeros
((
h
+
2
,
w
+
2
),
np
.
uint8
)
self
.
seed_pt
=
None
self
.
fixed_range
=
True
self
.
connectivity
=
4
self
.
update
()
cv
.
setMouseCallback
(
'floodfill'
,
self
.
onmouse
)
cv
.
createTrackbar
(
'lo'
,
'floodfill'
,
20
,
255
,
self
.
update
)
cv
.
createTrackbar
(
'hi'
,
'floodfill'
,
20
,
255
,
self
.
update
)
while
True
:
ch
=
cv
.
waitKey
()
if
ch
==
27
:
break
if
ch
==
ord
(
'f'
):
fixed_range
=
not
fixed_range
print
(
'using
%
s range'
%
(
'floating'
,
'fixed'
)[
fixed_range
])
update
()
self
.
fixed_range
=
not
self
.
fixed_range
print
(
'using
%
s range'
%
(
'floating'
,
'fixed'
)[
self
.
fixed_range
])
self
.
update
()
if
ch
==
ord
(
'c'
):
connectivity
=
12
-
connectivity
print
(
'connectivity ='
,
connectivity
)
update
()
self
.
connectivity
=
12
-
self
.
connectivity
print
(
'connectivity ='
,
self
.
connectivity
)
self
.
update
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
App
()
.
run
()
cv
.
destroyAllWindows
()
samples/python/gabor_threads.py
View file @
04fad57f
...
...
@@ -19,6 +19,7 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
from
multiprocessing.pool
import
ThreadPool
...
...
@@ -47,11 +48,10 @@ def process_threaded(img, filters, threadn = 8):
np
.
maximum
(
accum
,
fimg
,
accum
)
return
accum
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
from
common
import
Timer
print
(
__doc__
)
try
:
img_fn
=
sys
.
argv
[
1
]
except
:
...
...
@@ -73,4 +73,10 @@ if __name__ == '__main__':
cv
.
imshow
(
'img'
,
img
)
cv
.
imshow
(
'result'
,
res2
)
cv
.
waitKey
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/gaussian_mix.py
View file @
04fad57f
...
...
@@ -9,9 +9,10 @@ if PY3:
xrange
=
range
import
numpy
as
np
from
numpy
import
random
import
cv2
as
cv
from
numpy
import
random
def
make_gaussians
(
cluster_n
,
img_size
):
points
=
[]
ref_distrs
=
[]
...
...
@@ -34,7 +35,7 @@ def draw_gaussain(img, mean, cov, color):
cv
.
ellipse
(
img
,
(
x
,
y
),
(
s1
,
s2
),
ang
,
0
,
360
,
color
,
1
,
cv
.
LINE_AA
)
if
__name__
==
'__main__'
:
def
main
()
:
cluster_n
=
5
img_size
=
512
...
...
@@ -66,4 +67,11 @@ if __name__ == '__main__':
ch
=
cv
.
waitKey
(
0
)
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/grabcut.py
View file @
04fad57f
...
...
@@ -32,77 +32,73 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
import
sys
BLUE
=
[
255
,
0
,
0
]
# rectangle color
RED
=
[
0
,
0
,
255
]
# PR BG
GREEN
=
[
0
,
255
,
0
]
# PR FG
BLACK
=
[
0
,
0
,
0
]
# sure BG
WHITE
=
[
255
,
255
,
255
]
# sure FG
DRAW_BG
=
{
'color'
:
BLACK
,
'val'
:
0
}
DRAW_FG
=
{
'color'
:
WHITE
,
'val'
:
1
}
DRAW_PR_FG
=
{
'color'
:
GREEN
,
'val'
:
3
}
DRAW_PR_BG
=
{
'color'
:
RED
,
'val'
:
2
}
# setting up flags
rect
=
(
0
,
0
,
1
,
1
)
drawing
=
False
# flag for drawing curves
rectangle
=
False
# flag for drawing rect
rect_over
=
False
# flag to check if rect drawn
rect_or_mask
=
100
# flag for selecting rect or mask mode
value
=
DRAW_FG
# drawing initialized to FG
thickness
=
3
# brush thickness
def
onmouse
(
event
,
x
,
y
,
flags
,
param
):
global
img
,
img2
,
drawing
,
value
,
mask
,
rectangle
,
rect
,
rect_or_mask
,
ix
,
iy
,
rect_over
class
App
():
BLUE
=
[
255
,
0
,
0
]
# rectangle color
RED
=
[
0
,
0
,
255
]
# PR BG
GREEN
=
[
0
,
255
,
0
]
# PR FG
BLACK
=
[
0
,
0
,
0
]
# sure BG
WHITE
=
[
255
,
255
,
255
]
# sure FG
DRAW_BG
=
{
'color'
:
BLACK
,
'val'
:
0
}
DRAW_FG
=
{
'color'
:
WHITE
,
'val'
:
1
}
DRAW_PR_FG
=
{
'color'
:
GREEN
,
'val'
:
3
}
DRAW_PR_BG
=
{
'color'
:
RED
,
'val'
:
2
}
# setting up flags
rect
=
(
0
,
0
,
1
,
1
)
drawing
=
False
# flag for drawing curves
rectangle
=
False
# flag for drawing rect
rect_over
=
False
# flag to check if rect drawn
rect_or_mask
=
100
# flag for selecting rect or mask mode
value
=
DRAW_FG
# drawing initialized to FG
thickness
=
3
# brush thickness
def
onmouse
(
self
,
event
,
x
,
y
,
flags
,
param
):
# Draw Rectangle
if
event
==
cv
.
EVENT_RBUTTONDOWN
:
rectangle
=
True
ix
,
iy
=
x
,
y
self
.
rectangle
=
True
self
.
ix
,
self
.
iy
=
x
,
y
elif
event
==
cv
.
EVENT_MOUSEMOVE
:
if
rectangle
==
True
:
img
=
img2
.
copy
()
cv
.
rectangle
(
img
,(
ix
,
iy
),(
x
,
y
),
BLUE
,
2
)
rect
=
(
min
(
ix
,
x
),
min
(
iy
,
y
),
abs
(
ix
-
x
),
abs
(
iy
-
y
))
rect_or_mask
=
0
if
self
.
rectangle
==
True
:
self
.
img
=
self
.
img2
.
copy
()
cv
.
rectangle
(
self
.
img
,
(
self
.
ix
,
self
.
iy
),
(
x
,
y
),
self
.
BLUE
,
2
)
self
.
rect
=
(
min
(
self
.
ix
,
x
),
min
(
self
.
iy
,
y
),
abs
(
self
.
ix
-
x
),
abs
(
self
.
iy
-
y
))
self
.
rect_or_mask
=
0
elif
event
==
cv
.
EVENT_RBUTTONUP
:
rectangle
=
False
rect_over
=
True
cv
.
rectangle
(
img
,(
ix
,
iy
),(
x
,
y
),
BLUE
,
2
)
rect
=
(
min
(
ix
,
x
),
min
(
iy
,
y
),
abs
(
ix
-
x
),
abs
(
iy
-
y
))
rect_or_mask
=
0
self
.
rectangle
=
False
self
.
rect_over
=
True
cv
.
rectangle
(
self
.
img
,
(
self
.
ix
,
self
.
iy
),
(
x
,
y
),
self
.
BLUE
,
2
)
self
.
rect
=
(
min
(
self
.
ix
,
x
),
min
(
self
.
iy
,
y
),
abs
(
self
.
ix
-
x
),
abs
(
self
.
iy
-
y
))
self
.
rect_or_mask
=
0
print
(
" Now press the key 'n' a few times until no further change
\n
"
)
# draw touchup curves
if
event
==
cv
.
EVENT_LBUTTONDOWN
:
if
rect_over
==
False
:
if
self
.
rect_over
==
False
:
print
(
"first draw rectangle
\n
"
)
else
:
drawing
=
True
cv
.
circle
(
img
,(
x
,
y
),
thickness
,
value
[
'color'
],
-
1
)
cv
.
circle
(
mask
,(
x
,
y
),
thickness
,
value
[
'val'
],
-
1
)
self
.
drawing
=
True
cv
.
circle
(
self
.
img
,
(
x
,
y
),
self
.
thickness
,
self
.
value
[
'color'
],
-
1
)
cv
.
circle
(
self
.
mask
,
(
x
,
y
),
self
.
thickness
,
self
.
value
[
'val'
],
-
1
)
elif
event
==
cv
.
EVENT_MOUSEMOVE
:
if
drawing
==
True
:
cv
.
circle
(
img
,(
x
,
y
),
thickness
,
value
[
'color'
],
-
1
)
cv
.
circle
(
mask
,(
x
,
y
),
thickness
,
value
[
'val'
],
-
1
)
if
self
.
drawing
==
True
:
cv
.
circle
(
self
.
img
,
(
x
,
y
),
self
.
thickness
,
self
.
value
[
'color'
],
-
1
)
cv
.
circle
(
self
.
mask
,
(
x
,
y
),
self
.
thickness
,
self
.
value
[
'val'
],
-
1
)
elif
event
==
cv
.
EVENT_LBUTTONUP
:
if
drawing
==
True
:
drawing
=
False
cv
.
circle
(
img
,(
x
,
y
),
thickness
,
value
[
'color'
],
-
1
)
cv
.
circle
(
mask
,(
x
,
y
),
thickness
,
value
[
'val'
],
-
1
)
if
__name__
==
'__main__'
:
# print documentation
print
(
__doc__
)
if
self
.
drawing
==
True
:
self
.
drawing
=
False
cv
.
circle
(
self
.
img
,
(
x
,
y
),
self
.
thickness
,
self
.
value
[
'color'
],
-
1
)
cv
.
circle
(
self
.
mask
,
(
x
,
y
),
self
.
thickness
,
self
.
value
[
'val'
],
-
1
)
def
run
(
self
):
# Loading images
if
len
(
sys
.
argv
)
==
2
:
filename
=
sys
.
argv
[
1
]
# for drawing purposes
...
...
@@ -111,24 +107,24 @@ if __name__ == '__main__':
print
(
"Correct Usage: python grabcut.py <filename>
\n
"
)
filename
=
'lena.jpg'
img
=
cv
.
imread
(
cv
.
samples
.
findFile
(
filename
))
img2
=
img
.
copy
()
# a copy of original image
mask
=
np
.
zeros
(
img
.
shape
[:
2
],
dtype
=
np
.
uint8
)
# mask initialized to PR_BG
output
=
np
.
zeros
(
img
.
shape
,
np
.
uint8
)
# output image to be shown
self
.
img
=
cv
.
imread
(
cv
.
samples
.
findFile
(
filename
))
self
.
img2
=
self
.
img
.
copy
()
# a copy of original image
self
.
mask
=
np
.
zeros
(
self
.
img
.
shape
[:
2
],
dtype
=
np
.
uint8
)
# mask initialized to PR_BG
self
.
output
=
np
.
zeros
(
self
.
img
.
shape
,
np
.
uint8
)
# output image to be shown
# input and output windows
cv
.
namedWindow
(
'output'
)
cv
.
namedWindow
(
'input'
)
cv
.
setMouseCallback
(
'input'
,
onmouse
)
cv
.
moveWindow
(
'input'
,
img
.
shape
[
1
]
+
10
,
90
)
cv
.
setMouseCallback
(
'input'
,
self
.
onmouse
)
cv
.
moveWindow
(
'input'
,
self
.
img
.
shape
[
1
]
+
10
,
90
)
print
(
" Instructions:
\n
"
)
print
(
" Draw a rectangle around the object using right mouse button
\n
"
)
while
(
1
):
cv
.
imshow
(
'output'
,
output
)
cv
.
imshow
(
'input'
,
img
)
cv
.
imshow
(
'output'
,
self
.
output
)
cv
.
imshow
(
'input'
,
self
.
img
)
k
=
cv
.
waitKey
(
1
)
# key bindings
...
...
@@ -136,44 +132,54 @@ if __name__ == '__main__':
break
elif
k
==
ord
(
'0'
):
# BG drawing
print
(
" mark background regions with left mouse button
\n
"
)
value
=
DRAW_BG
self
.
value
=
self
.
DRAW_BG
elif
k
==
ord
(
'1'
):
# FG drawing
print
(
" mark foreground regions with left mouse button
\n
"
)
value
=
DRAW_FG
self
.
value
=
self
.
DRAW_FG
elif
k
==
ord
(
'2'
):
# PR_BG drawing
value
=
DRAW_PR_BG
self
.
value
=
self
.
DRAW_PR_BG
elif
k
==
ord
(
'3'
):
# PR_FG drawing
value
=
DRAW_PR_FG
self
.
value
=
self
.
DRAW_PR_FG
elif
k
==
ord
(
's'
):
# save image
bar
=
np
.
zeros
((
img
.
shape
[
0
],
5
,
3
),
np
.
uint8
)
res
=
np
.
hstack
((
img2
,
bar
,
img
,
bar
,
output
))
cv
.
imwrite
(
'grabcut_output.png'
,
res
)
bar
=
np
.
zeros
((
self
.
img
.
shape
[
0
],
5
,
3
),
np
.
uint8
)
res
=
np
.
hstack
((
self
.
img2
,
bar
,
self
.
img
,
bar
,
self
.
output
))
cv
.
imwrite
(
'grabcut_output.png'
,
res
)
print
(
" Result saved as image
\n
"
)
elif
k
==
ord
(
'r'
):
# reset everything
print
(
"resetting
\n
"
)
rect
=
(
0
,
0
,
1
,
1
)
drawing
=
False
rectangle
=
False
rect_or_mask
=
100
rect_over
=
False
value
=
DRAW_FG
img
=
img2
.
copy
()
mask
=
np
.
zeros
(
img
.
shape
[:
2
],
dtype
=
np
.
uint8
)
# mask initialized to PR_BG
output
=
np
.
zeros
(
img
.
shape
,
np
.
uint8
)
# output image to be shown
self
.
rect
=
(
0
,
0
,
1
,
1
)
self
.
drawing
=
False
self
.
rectangle
=
False
self
.
rect_or_mask
=
100
self
.
rect_over
=
False
self
.
value
=
self
.
DRAW_FG
self
.
img
=
self
.
img2
.
copy
()
self
.
mask
=
np
.
zeros
(
self
.
img
.
shape
[:
2
],
dtype
=
np
.
uint8
)
# mask initialized to PR_BG
self
.
output
=
np
.
zeros
(
self
.
img
.
shape
,
np
.
uint8
)
# output image to be shown
elif
k
==
ord
(
'n'
):
# segment the image
print
(
""" For finer touchups, mark foreground and background after pressing keys 0-3
and again press 'n'
\n
"""
)
if
(
rect_or_mask
==
0
):
# grabcut with rect
bgdmodel
=
np
.
zeros
((
1
,
65
),
np
.
float64
)
fgdmodel
=
np
.
zeros
((
1
,
65
),
np
.
float64
)
cv
.
grabCut
(
img2
,
mask
,
rect
,
bgdmodel
,
fgdmodel
,
1
,
cv
.
GC_INIT_WITH_RECT
)
rect_or_mask
=
1
elif
rect_or_mask
==
1
:
# grabcut with mask
bgdmodel
=
np
.
zeros
((
1
,
65
),
np
.
float64
)
fgdmodel
=
np
.
zeros
((
1
,
65
),
np
.
float64
)
cv
.
grabCut
(
img2
,
mask
,
rect
,
bgdmodel
,
fgdmodel
,
1
,
cv
.
GC_INIT_WITH_MASK
)
mask2
=
np
.
where
((
mask
==
1
)
+
(
mask
==
3
),
255
,
0
)
.
astype
(
'uint8'
)
output
=
cv
.
bitwise_and
(
img2
,
img2
,
mask
=
mask2
)
try
:
if
(
self
.
rect_or_mask
==
0
):
# grabcut with rect
bgdmodel
=
np
.
zeros
((
1
,
65
),
np
.
float64
)
fgdmodel
=
np
.
zeros
((
1
,
65
),
np
.
float64
)
cv
.
grabCut
(
self
.
img2
,
self
.
mask
,
self
.
rect
,
bgdmodel
,
fgdmodel
,
1
,
cv
.
GC_INIT_WITH_RECT
)
self
.
rect_or_mask
=
1
elif
self
.
rect_or_mask
==
1
:
# grabcut with mask
bgdmodel
=
np
.
zeros
((
1
,
65
),
np
.
float64
)
fgdmodel
=
np
.
zeros
((
1
,
65
),
np
.
float64
)
cv
.
grabCut
(
self
.
img2
,
self
.
mask
,
self
.
rect
,
bgdmodel
,
fgdmodel
,
1
,
cv
.
GC_INIT_WITH_MASK
)
except
:
import
traceback
traceback
.
print_exc
()
mask2
=
np
.
where
((
self
.
mask
==
1
)
+
(
self
.
mask
==
3
),
255
,
0
)
.
astype
(
'uint8'
)
self
.
output
=
cv
.
bitwise_and
(
self
.
img2
,
self
.
img2
,
mask
=
mask2
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
App
()
.
run
()
cv
.
destroyAllWindows
()
samples/python/hist.py
View file @
04fad57f
...
...
@@ -18,8 +18,8 @@ Abid Rahman 3/14/12 debug Gary Bradski
# Python 2/3 compatibility
from
__future__
import
print_function
import
cv2
as
cv
import
numpy
as
np
import
cv2
as
cv
bins
=
np
.
arange
(
256
)
.
reshape
(
256
,
1
)
...
...
@@ -53,8 +53,7 @@ def hist_lines(im):
return
y
if
__name__
==
'__main__'
:
def
main
():
import
sys
if
len
(
sys
.
argv
)
>
1
:
...
...
@@ -116,4 +115,11 @@ if __name__ == '__main__':
print
(
'ESC'
)
cv
.
destroyAllWindows
()
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/houghcircles.py
View file @
04fad57f
...
...
@@ -11,13 +11,12 @@ Usage:
# Python 2/3 compatibility
from
__future__
import
print_function
import
cv2
as
cv
import
numpy
as
np
import
sys
import
cv2
as
cv
if
__name__
==
'__main__'
:
print
(
__doc__
)
import
sys
def
main
():
try
:
fn
=
sys
.
argv
[
1
]
except
IndexError
:
...
...
@@ -40,3 +39,10 @@ if __name__ == '__main__':
cv
.
imshow
(
"source"
,
src
)
cv
.
waitKey
(
0
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/houghlines.py
View file @
04fad57f
...
...
@@ -13,12 +13,11 @@ from __future__ import print_function
import
cv2
as
cv
import
numpy
as
np
import
sys
import
math
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
try
:
fn
=
sys
.
argv
[
1
]
except
IndexError
:
...
...
@@ -52,3 +51,10 @@ if __name__ == '__main__':
cv
.
imshow
(
"source"
,
src
)
cv
.
waitKey
(
0
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/inpaint.py
View file @
04fad57f
...
...
@@ -20,17 +20,16 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
from
common
import
Sketcher
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
try
:
fn
=
sys
.
argv
[
1
]
except
:
fn
=
'fruits.jpg'
print
(
__doc__
)
img
=
cv
.
imread
(
cv
.
samples
.
findFile
(
fn
))
if
img
is
None
:
print
(
'Failed to load image file:'
,
fn
)
...
...
@@ -51,4 +50,11 @@ if __name__ == '__main__':
img_mark
[:]
=
img
mark
[:]
=
0
sketch
.
show
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/kalman.py
View file @
04fad57f
...
...
@@ -18,12 +18,13 @@ PY3 = sys.version_info[0] == 3
if
PY3
:
long
=
int
import
numpy
as
np
import
cv2
as
cv
from
math
import
cos
,
sin
,
sqrt
import
numpy
as
np
if
__name__
==
"__main__"
:
def
main
():
img_height
=
500
img_width
=
500
kalman
=
cv
.
KalmanFilter
(
2
,
1
,
0
)
...
...
@@ -93,4 +94,10 @@ if __name__ == "__main__":
if
code
in
[
27
,
ord
(
'q'
),
ord
(
'Q'
)]:
break
cv
.
destroyWindow
(
"Kalman"
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/kmeans.py
View file @
04fad57f
...
...
@@ -18,12 +18,10 @@ import cv2 as cv
from
gaussian_mix
import
make_gaussians
if
__name__
==
'__main__'
:
def
main
()
:
cluster_n
=
5
img_size
=
512
print
(
__doc__
)
# generating bright palette
colors
=
np
.
zeros
((
1
,
cluster_n
,
3
),
np
.
uint8
)
colors
[
0
,:]
=
255
...
...
@@ -43,8 +41,15 @@ if __name__ == '__main__':
cv
.
circle
(
img
,
(
x
,
y
),
1
,
c
,
-
1
)
cv
.
imshow
(
'
gaussian mixture
'
,
img
)
cv
.
imshow
(
'
kmeans
'
,
img
)
ch
=
cv
.
waitKey
(
0
)
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/lappyr.py
View file @
04fad57f
...
...
@@ -22,6 +22,7 @@ if PY3:
import
numpy
as
np
import
cv2
as
cv
import
video
from
common
import
nothing
,
getsize
...
...
@@ -44,9 +45,8 @@ def merge_lappyr(levels):
return
np
.
uint8
(
np
.
clip
(
img
,
0
,
255
))
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
print
(
__doc__
)
try
:
fn
=
sys
.
argv
[
1
]
...
...
@@ -72,3 +72,11 @@ if __name__ == '__main__':
if
cv
.
waitKey
(
1
)
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/letter_recog.py
View file @
04fad57f
...
...
@@ -145,12 +145,10 @@ class MLP(LetterStatModel):
if
__name__
==
'__main__'
:
def
main
()
:
import
getopt
import
sys
print
(
__doc__
)
models
=
[
RTrees
,
KNearest
,
Boost
,
SVM
,
MLP
]
# NBayes
models
=
dict
(
[(
cls
.
__name__
.
lower
(),
cls
)
for
cls
in
models
]
)
...
...
@@ -186,4 +184,11 @@ if __name__ == '__main__':
fn
=
args
[
'--save'
]
print
(
'saving model to
%
s ...'
%
fn
)
model
.
save
(
fn
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/lk_homography.py
View file @
04fad57f
...
...
@@ -25,6 +25,7 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
import
video
from
common
import
draw_str
from
video
import
presets
...
...
@@ -112,9 +113,11 @@ def main():
except
:
video_src
=
0
print
(
__doc__
)
App
(
video_src
)
.
run
()
cv
.
destroyAllWindows
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/lk_track.py
View file @
04fad57f
...
...
@@ -23,6 +23,7 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
import
video
from
common
import
anorm2
,
draw_str
from
time
import
clock
...
...
@@ -96,9 +97,11 @@ def main():
except
:
video_src
=
0
print
(
__doc__
)
App
(
video_src
)
.
run
()
cv
.
destroyAllWindows
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/logpolar.py
View file @
04fad57f
...
...
@@ -13,11 +13,10 @@ Keys:
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
import
cv2
as
cv
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
import
sys
try
:
fn
=
sys
.
argv
[
1
]
...
...
@@ -37,3 +36,10 @@ if __name__ == '__main__':
cv
.
imshow
(
'linearpolar'
,
img3
)
cv
.
waitKey
(
0
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/morphology.py
View file @
04fad57f
...
...
@@ -21,9 +21,7 @@ import numpy as np
import
cv2
as
cv
if
__name__
==
'__main__'
:
print
(
__doc__
)
def
main
():
import
sys
from
itertools
import
cycle
from
common
import
draw_str
...
...
@@ -93,4 +91,11 @@ if __name__ == '__main__':
else
:
cur_str_mode
=
str_modes
.
next
()
update
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/mouse_and_match.py
View file @
04fad57f
...
...
@@ -25,59 +25,64 @@ import argparse
from
math
import
*
drag_start
=
None
sel
=
(
0
,
0
,
0
,
0
)
class
App
():
drag_start
=
None
sel
=
(
0
,
0
,
0
,
0
)
def
onmouse
(
event
,
x
,
y
,
flags
,
param
):
global
drag_start
,
sel
def
onmouse
(
self
,
event
,
x
,
y
,
flags
,
param
):
if
event
==
cv
.
EVENT_LBUTTONDOWN
:
drag_start
=
x
,
y
sel
=
0
,
0
,
0
,
0
self
.
drag_start
=
x
,
y
self
.
sel
=
(
0
,
0
,
0
,
0
)
elif
event
==
cv
.
EVENT_LBUTTONUP
:
if
sel
[
2
]
>
sel
[
0
]
and
sel
[
3
]
>
sel
[
1
]:
patch
=
gray
[
sel
[
1
]:
sel
[
3
],
sel
[
0
]:
sel
[
2
]]
result
=
cv
.
matchTemplate
(
gray
,
patch
,
cv
.
TM_CCOEFF_NORMED
)
if
self
.
sel
[
2
]
>
self
.
sel
[
0
]
and
self
.
sel
[
3
]
>
self
.
sel
[
1
]:
patch
=
self
.
gray
[
self
.
sel
[
1
]:
self
.
sel
[
3
],
self
.
sel
[
0
]:
self
.
sel
[
2
]]
result
=
cv
.
matchTemplate
(
self
.
gray
,
patch
,
cv
.
TM_CCOEFF_NORMED
)
result
=
np
.
abs
(
result
)
**
3
_val
,
result
=
cv
.
threshold
(
result
,
0.01
,
0
,
cv
.
THRESH_TOZERO
)
result8
=
cv
.
normalize
(
result
,
None
,
0
,
255
,
cv
.
NORM_MINMAX
,
cv
.
CV_8U
)
result8
=
cv
.
normalize
(
result
,
None
,
0
,
255
,
cv
.
NORM_MINMAX
,
cv
.
CV_8U
)
cv
.
imshow
(
"result"
,
result8
)
drag_start
=
None
elif
drag_start
:
self
.
drag_start
=
None
elif
self
.
drag_start
:
#print flags
if
flags
&
cv
.
EVENT_FLAG_LBUTTON
:
minpos
=
min
(
drag_start
[
0
],
x
),
min
(
drag_start
[
1
],
y
)
maxpos
=
max
(
drag_start
[
0
],
x
),
max
(
drag_start
[
1
],
y
)
sel
=
minpos
[
0
],
minpos
[
1
],
maxpos
[
0
],
maxpos
[
1
]
img
=
cv
.
cvtColor
(
gray
,
cv
.
COLOR_GRAY2BGR
)
cv
.
rectangle
(
img
,
(
sel
[
0
],
sel
[
1
]),
(
sel
[
2
],
sel
[
3
]),
(
0
,
255
,
255
),
1
)
minpos
=
min
(
self
.
drag_start
[
0
],
x
),
min
(
self
.
drag_start
[
1
],
y
)
maxpos
=
max
(
self
.
drag_start
[
0
],
x
),
max
(
self
.
drag_start
[
1
],
y
)
self
.
sel
=
(
minpos
[
0
],
minpos
[
1
],
maxpos
[
0
],
maxpos
[
1
])
img
=
cv
.
cvtColor
(
self
.
gray
,
cv
.
COLOR_GRAY2BGR
)
cv
.
rectangle
(
img
,
(
self
.
sel
[
0
],
self
.
sel
[
1
]),
(
self
.
sel
[
2
],
self
.
sel
[
3
]),
(
0
,
255
,
255
),
1
)
cv
.
imshow
(
"gray"
,
img
)
else
:
print
(
"selection is complete"
)
drag_start
=
None
if
__name__
==
'__main__'
:
print
(
__doc__
)
self
.
drag_start
=
None
def
run
(
self
):
parser
=
argparse
.
ArgumentParser
(
description
=
'Demonstrate mouse interaction with images'
)
parser
.
add_argument
(
"-i"
,
"--input"
,
default
=
'../data/'
,
help
=
"Input directory."
)
args
=
parser
.
parse_args
()
path
=
args
.
input
cv
.
namedWindow
(
"gray"
,
1
)
cv
.
setMouseCallback
(
"gray"
,
onmouse
)
cv
.
setMouseCallback
(
"gray"
,
self
.
onmouse
)
'''Loop through all the images in the directory'''
for
infile
in
glob
.
glob
(
os
.
path
.
join
(
path
,
'*.*'
)
):
ext
=
os
.
path
.
splitext
(
infile
)[
1
][
1
:]
#get the filename extension
if
ext
==
"png"
or
ext
==
"jpg"
or
ext
==
"bmp"
or
ext
==
"tiff"
or
ext
==
"pbm"
:
print
(
infile
)
img
=
cv
.
imread
(
infile
,
1
)
img
=
cv
.
imread
(
infile
,
1
)
if
img
is
None
:
continue
sel
=
(
0
,
0
,
0
,
0
)
drag_start
=
None
gray
=
cv
.
cvtColor
(
img
,
cv
.
COLOR_BGR2GRAY
)
cv
.
imshow
(
"gray"
,
gray
)
self
.
sel
=
(
0
,
0
,
0
,
0
)
self
.
drag_start
=
None
self
.
gray
=
cv
.
cvtColor
(
img
,
cv
.
COLOR_BGR2GRAY
)
cv
.
imshow
(
"gray"
,
self
.
gray
)
if
cv
.
waitKey
()
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
App
()
.
run
()
cv
.
destroyAllWindows
()
samples/python/mser.py
View file @
04fad57f
...
...
@@ -14,12 +14,16 @@ Keys:
'''
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
import
cv2
as
cv
import
video
import
sys
if
__name__
==
'__main__'
:
def
main
()
:
try
:
video_src
=
sys
.
argv
[
1
]
except
:
...
...
@@ -42,4 +46,11 @@ if __name__ == '__main__':
cv
.
imshow
(
'img'
,
vis
)
if
cv
.
waitKey
(
5
)
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/opencv_version.py
View file @
04fad57f
...
...
@@ -13,11 +13,11 @@ Usage:
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
import
cv2
as
cv
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
print
(
__doc__
)
try
:
param
=
sys
.
argv
[
1
]
...
...
@@ -31,3 +31,11 @@ if __name__ == '__main__':
print
(
"
\t
--help
\n\t\t
print this help"
)
else
:
print
(
"Welcome to OpenCV"
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/opt_flow.py
View file @
04fad57f
...
...
@@ -18,6 +18,7 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
import
video
...
...
@@ -55,9 +56,8 @@ def warp_flow(img, flow):
res
=
cv
.
remap
(
img
,
flow
,
None
,
cv
.
INTER_LINEAR
)
return
res
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
print
(
__doc__
)
try
:
fn
=
sys
.
argv
[
1
]
except
IndexError
:
...
...
@@ -94,4 +94,11 @@ if __name__ == '__main__':
if
show_glitch
:
cur_glitch
=
img
.
copy
()
print
(
'glitch is'
,
[
'off'
,
'on'
][
show_glitch
])
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/peopledetect.py
View file @
04fad57f
...
...
@@ -30,13 +30,11 @@ def draw_detections(img, rects, thickness = 1):
cv
.
rectangle
(
img
,
(
x
+
pad_w
,
y
+
pad_h
),
(
x
+
w
-
pad_w
,
y
+
h
-
pad_h
),
(
0
,
255
,
0
),
thickness
)
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
from
glob
import
glob
import
itertools
as
it
print
(
__doc__
)
hog
=
cv
.
HOGDescriptor
()
hog
.
setSVMDetector
(
cv
.
HOGDescriptor_getDefaultPeopleDetector
()
)
...
...
@@ -68,4 +66,11 @@ if __name__ == '__main__':
ch
=
cv
.
waitKey
()
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/squares.py
View file @
04fad57f
...
...
@@ -7,6 +7,7 @@ Loads several images sequentially and tries to find squares in each image.
'''
# Python 2/3 compatibility
from
__future__
import
print_function
import
sys
PY3
=
sys
.
version_info
[
0
]
==
3
...
...
@@ -42,7 +43,7 @@ def find_squares(img):
squares
.
append
(
cnt
)
return
squares
if
__name__
==
'__main__'
:
def
main
()
:
from
glob
import
glob
for
fn
in
glob
(
'../data/pic*.png'
):
img
=
cv
.
imread
(
fn
)
...
...
@@ -52,4 +53,11 @@ if __name__ == '__main__':
ch
=
cv
.
waitKey
()
if
ch
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/stereo_match.py
View file @
04fad57f
...
...
@@ -33,7 +33,7 @@ def write_ply(fn, verts, colors):
np
.
savetxt
(
f
,
verts
,
fmt
=
'
%
f
%
f
%
f
%
d
%
d
%
d '
)
if
__name__
==
'__main__'
:
def
main
()
:
print
(
'loading images...'
)
imgL
=
cv
.
pyrDown
(
cv
.
imread
(
cv
.
samples
.
findFile
(
'aloeL.jpg'
)))
# downscale images for faster processing
imgR
=
cv
.
pyrDown
(
cv
.
imread
(
cv
.
samples
.
findFile
(
'aloeR.jpg'
)))
...
...
@@ -75,4 +75,11 @@ if __name__ == '__main__':
cv
.
imshow
(
'left'
,
imgL
)
cv
.
imshow
(
'disparity'
,
(
disp
-
min_disp
)
/
num_disp
)
cv
.
waitKey
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/texture_flow.py
View file @
04fad57f
...
...
@@ -16,7 +16,7 @@ from __future__ import print_function
import
numpy
as
np
import
cv2
as
cv
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
try
:
fn
=
sys
.
argv
[
1
]
...
...
@@ -45,3 +45,11 @@ if __name__ == '__main__':
cv
.
imshow
(
'input'
,
img
)
cv
.
imshow
(
'flow'
,
vis
)
cv
.
waitKey
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/tst_scene_render.py
View file @
04fad57f
...
...
@@ -5,9 +5,10 @@
from
__future__
import
print_function
import
numpy
as
np
import
cv2
as
cv
from
numpy
import
pi
,
sin
,
cos
import
cv2
as
cv
defaultSize
=
512
...
...
@@ -86,7 +87,7 @@ class TestSceneRender():
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
)
self
.
currentRect
[
1
:
3
]
+=
int
(
self
.
h
/
20
*
cos
(
self
.
time
)
)
cv
.
fillConvexPoly
(
img
,
self
.
currentRect
,
(
0
,
0
,
255
))
self
.
time
+=
self
.
timeStep
...
...
@@ -96,8 +97,7 @@ class TestSceneRender():
self
.
time
=
0.0
if
__name__
==
'__main__'
:
def
main
():
backGr
=
cv
.
imread
(
cv
.
samples
.
findFile
(
'graf1.png'
))
fgr
=
cv
.
imread
(
cv
.
samples
.
findFile
(
'box.png'
))
...
...
@@ -111,6 +111,11 @@ if __name__ == '__main__':
ch
=
cv
.
waitKey
(
3
)
if
ch
==
27
:
break
#import os
#print (os.environ['PYTHONPATH'])
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/turing.py
View file @
04fad57f
...
...
@@ -27,7 +27,7 @@ USAGE: turing.py [-o <output.avi>]
Press ESC to stop.
'''
if
__name__
==
'__main__'
:
def
main
()
:
print
(
help_message
)
w
,
h
=
512
,
512
...
...
@@ -71,4 +71,11 @@ if __name__ == '__main__':
cv
.
imshow
(
'a'
,
vis
)
if
cv
.
waitKey
(
5
)
==
27
:
break
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/video.py
View file @
04fad57f
...
...
@@ -32,13 +32,13 @@ Keys:
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
import
cv2
as
cv
import
re
import
numpy
as
np
from
numpy
import
pi
,
sin
,
cos
import
cv2
as
cv
# built-in modules
from
time
import
clock
...
...
samples/python/video_threaded.py
View file @
04fad57f
...
...
@@ -36,11 +36,9 @@ class DummyTask:
def
get
(
self
):
return
self
.
data
if
__name__
==
'__main__'
:
def
main
()
:
import
sys
print
(
__doc__
)
try
:
fn
=
sys
.
argv
[
1
]
except
:
...
...
@@ -86,4 +84,11 @@ if __name__ == '__main__':
threaded_mode
=
not
threaded_mode
if
ch
==
27
:
break
cv
.
destroyAllWindows
()
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/video_v4l2.py
View file @
04fad57f
...
...
@@ -17,28 +17,31 @@ Keys:
# Python 2/3 compatibility
from
__future__
import
print_function
import
numpy
as
np
import
cv2
as
cv
def
decode_fourcc
(
v
):
def
main
():
def
decode_fourcc
(
v
):
v
=
int
(
v
)
return
""
.
join
([
chr
((
v
>>
8
*
i
)
&
0xFF
)
for
i
in
range
(
4
)])
font
=
cv
.
FONT_HERSHEY_SIMPLEX
color
=
(
0
,
255
,
0
)
font
=
cv
.
FONT_HERSHEY_SIMPLEX
color
=
(
0
,
255
,
0
)
cap
=
cv
.
VideoCapture
(
0
)
cap
.
set
(
cv
.
CAP_PROP_AUTOFOCUS
,
False
)
# Known bug: https://github.com/opencv/opencv/pull/5474
cap
=
cv
.
VideoCapture
(
0
)
cap
.
set
(
cv
.
CAP_PROP_AUTOFOCUS
,
False
)
# Known bug: https://github.com/opencv/opencv/pull/5474
cv
.
namedWindow
(
"Video"
)
cv
.
namedWindow
(
"Video"
)
convert_rgb
=
True
fps
=
int
(
cap
.
get
(
cv
.
CAP_PROP_FPS
))
focus
=
int
(
min
(
cap
.
get
(
cv
.
CAP_PROP_FOCUS
)
*
100
,
2
**
31
-
1
))
# ceil focus to C_LONG as Python3 int can go to +inf
convert_rgb
=
True
fps
=
int
(
cap
.
get
(
cv
.
CAP_PROP_FPS
))
focus
=
int
(
min
(
cap
.
get
(
cv
.
CAP_PROP_FOCUS
)
*
100
,
2
**
31
-
1
))
# ceil focus to C_LONG as Python3 int can go to +inf
cv
.
createTrackbar
(
"FPS"
,
"Video"
,
fps
,
30
,
lambda
v
:
cap
.
set
(
cv
.
CAP_PROP_FPS
,
v
))
cv
.
createTrackbar
(
"Focus"
,
"Video"
,
focus
,
100
,
lambda
v
:
cap
.
set
(
cv
.
CAP_PROP_FOCUS
,
v
/
100
))
cv
.
createTrackbar
(
"FPS"
,
"Video"
,
fps
,
30
,
lambda
v
:
cap
.
set
(
cv
.
CAP_PROP_FPS
,
v
))
cv
.
createTrackbar
(
"Focus"
,
"Video"
,
focus
,
100
,
lambda
v
:
cap
.
set
(
cv
.
CAP_PROP_FOCUS
,
v
/
100
))
while
True
:
while
True
:
status
,
img
=
cap
.
read
()
fourcc
=
decode_fourcc
(
cap
.
get
(
cv
.
CAP_PROP_FOURCC
))
...
...
@@ -65,3 +68,11 @@ while True:
elif
k
==
ord
(
'g'
):
convert_rgb
=
not
convert_rgb
cap
.
set
(
cv
.
CAP_PROP_CONVERT_RGB
,
convert_rgb
)
print
(
'Done'
)
if
__name__
==
'__main__'
:
print
(
__doc__
)
main
()
cv
.
destroyAllWindows
()
samples/python/watershed.py
View file @
04fad57f
...
...
@@ -76,10 +76,10 @@ class App:
if
__name__
==
'__main__'
:
print
(
__doc__
)
import
sys
try
:
fn
=
sys
.
argv
[
1
]
except
:
fn
=
'fruits.jpg'
print
(
__doc__
)
App
(
cv
.
samples
.
findFile
(
fn
))
.
run
()
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