samples: fix python samples compatibility with demo.py

This commit is contained in:
Alexander Alekhin 2019-03-19 21:03:58 +03:00
parent f4c2c4412b
commit 04fad57fc1
48 changed files with 678 additions and 403 deletions

View File

@ -106,9 +106,8 @@ def affine_detect(detector, img, mask=None, pool=None):
print() print()
return keypoints, np.array(descrs) return keypoints, np.array(descrs)
if __name__ == '__main__':
print(__doc__)
def main():
import sys, getopt import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], '', ['feature=']) opts, args = getopt.getopt(sys.argv[1:], '', ['feature='])
opts = dict(opts) opts = dict(opts)
@ -160,4 +159,10 @@ if __name__ == '__main__':
match_and_draw('affine find_obj') match_and_draw('affine find_obj')
cv.waitKey() cv.waitKey()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -26,11 +26,7 @@ import cv2 as cv
# built-in modules # built-in modules
import sys import sys
if __name__ == '__main__': def main():
print('This sample shows how to implement a simple hi resolution image navigation.')
print('USAGE: browse.py [image filename]')
print()
if len(sys.argv) > 1: if len(sys.argv) > 1:
fn = cv.samples.findFile(sys.argv[1]) fn = cv.samples.findFile(sys.argv[1])
print('loading %s ...' % fn) print('loading %s ...' % fn)
@ -62,4 +58,10 @@ if __name__ == '__main__':
cv.imshow('preview', small) cv.imshow('preview', small)
cv.setMouseCallback('preview', onmouse) cv.setMouseCallback('preview', onmouse)
cv.waitKey() cv.waitKey()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -25,7 +25,7 @@ from common import splitfn
# built-in modules # built-in modules
import os import os
if __name__ == '__main__': def main():
import sys import sys
import getopt import getopt
from glob import glob from glob import glob
@ -126,4 +126,10 @@ if __name__ == '__main__':
print('Undistorted image written to: %s' % outfile) print('Undistorted image written to: %s' % outfile)
cv.imwrite(outfile, dst) cv.imwrite(outfile, dst)
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -1,14 +1,14 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from mpl_toolkits.mplot3d import Axes3D # Python 2/3 compatibility
import matplotlib.pyplot as plt from __future__ import print_function
import numpy as np import numpy as np
from matplotlib import cm
from numpy import linspace
import argparse
import cv2 as cv import cv2 as cv
from numpy import linspace
def inverse_homogeneoux_matrix(M): def inverse_homogeneoux_matrix(M):
R = M[0:3, 0:3] R = M[0:3, 0:3]
T = M[0:3, 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, def draw_camera_boards(ax, camera_matrix, cam_width, cam_height, scale_focal,
extrinsics, board_width, board_height, square_size, extrinsics, board_width, board_height, square_size,
patternCentric): patternCentric):
from matplotlib import cm
min_values = np.zeros((3,1)) min_values = np.zeros((3,1))
min_values = np.inf min_values = np.inf
max_values = np.zeros((3,1)) 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 return min_values, max_values
def main(): def main():
import argparse
parser = argparse.ArgumentParser(description='Plot camera calibration extrinsics.', parser = argparse.ArgumentParser(description='Plot camera calibration extrinsics.',
formatter_class=argparse.ArgumentDefaultsHelpFormatter) formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--calibration', type=str, default='left_intrinsics.yml', parser.add_argument('--calibration', type=str, default='left_intrinsics.yml',
@ -179,6 +183,9 @@ def main():
camera_matrix = fs.getNode('camera_matrix').mat() camera_matrix = fs.getNode('camera_matrix').mat()
extrinsics = fs.getNode('extrinsic_parameters').mat() extrinsics = fs.getNode('extrinsic_parameters').mat()
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure() fig = plt.figure()
ax = fig.gca(projection='3d') ax = fig.gca(projection='3d')
ax.set_aspect("equal") ax.set_aspect("equal")
@ -211,6 +218,10 @@ def main():
ax.set_title('Extrinsic Parameters Visualization') ax.set_title('Extrinsic Parameters Visualization')
plt.show() plt.show()
print('Done')
if __name__ == "__main__":
if __name__ == '__main__':
print(__doc__)
main() main()
cv.destroyAllWindows()

View File

@ -119,10 +119,10 @@ class App(object):
if __name__ == '__main__': if __name__ == '__main__':
print(__doc__)
import sys import sys
try: try:
video_src = sys.argv[1] video_src = sys.argv[1]
except: except:
video_src = 0 video_src = 0
print(__doc__)
App(video_src).run() App(video_src).run()

View File

@ -46,7 +46,7 @@ def coherence_filter(img, sigma = 11, str_sigma = 11, blend = 0.5, iter_n = 4):
return img return img
if __name__ == '__main__': def main():
import sys import sys
try: try:
fn = sys.argv[1] fn = sys.argv[1]
@ -82,4 +82,11 @@ if __name__ == '__main__':
update() update()
if ch == 27: if ch == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -8,6 +8,9 @@ Keys:
''' '''
# Python 2/3 compatibility
from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
@ -17,46 +20,54 @@ import sys
# local modules # local modules
import video import video
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
hsv_map[:,:,1] = s
hsv_map[:,:,2] = 255
hsv_map = cv.cvtColor(hsv_map, cv.COLOR_HSV2BGR)
cv.imshow('hsv_map', hsv_map)
cv.namedWindow('hist', 0)
self.hist_scale = 10
cv.createTrackbar('scale', 'hist', self.hist_scale, 32, self.set_scale)
try:
fn = sys.argv[1]
except:
fn = 0
cam = video.create_capture(fn, fallback='synth:bg=baboon.jpg:class=chess:noise=0.05')
while True:
flag, frame = cam.read()
cv.imshow('camera', frame)
small = cv.pyrDown(frame)
hsv = cv.cvtColor(small, cv.COLOR_BGR2HSV)
dark = hsv[...,2] < 32
hsv[dark] = 0
h = cv.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256])
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__': if __name__ == '__main__':
print(__doc__)
hsv_map = np.zeros((180, 256, 3), np.uint8) App().run()
h, s = np.indices(hsv_map.shape[:2])
hsv_map[:,:,0] = h
hsv_map[:,:,1] = s
hsv_map[:,:,2] = 255
hsv_map = cv.cvtColor(hsv_map, cv.COLOR_HSV2BGR)
cv.imshow('hsv_map', hsv_map)
cv.namedWindow('hist', 0)
hist_scale = 10
def set_scale(val):
global hist_scale
hist_scale = val
cv.createTrackbar('scale', 'hist', hist_scale, 32, set_scale)
try:
fn = sys.argv[1]
except:
fn = 0
cam = video.create_capture(fn, fallback='synth:bg=baboon.jpg:class=chess:noise=0.05')
while True:
flag, frame = cam.read()
cv.imshow('camera', frame)
small = cv.pyrDown(frame)
hsv = cv.cvtColor(small, cv.COLOR_BGR2HSV)
dark = hsv[...,2] < 32
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)
vis = hsv_map*h[:,:,np.newaxis] / 255.0
cv.imshow('hist', vis)
ch = cv.waitKey(1)
if ch == 27:
break
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -48,9 +48,7 @@ def make_image():
cv.ellipse( img, (dx+273, dy+100), (20,35), 0, 0, 360, white, -1 ) cv.ellipse( img, (dx+273, dy+100), (20,35), 0, 0, 360, white, -1 )
return img return img
if __name__ == '__main__': def main():
print(__doc__)
img = make_image() img = make_image()
h, w = img.shape[:2] h, w = img.shape[:2]
@ -67,4 +65,10 @@ if __name__ == '__main__':
cv.createTrackbar( "levels+3", "contours", 3, 7, update ) cv.createTrackbar( "levels+3", "contours", 3, 7, update )
cv.imshow('image', img) cv.imshow('image', img)
cv.waitKey() cv.waitKey()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -65,8 +65,7 @@ def defocus_kernel(d, sz=65):
return kern return kern
if __name__ == '__main__': def main():
print(__doc__)
import sys, getopt import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], '', ['circle', 'angle=', 'd=', 'snr=']) opts, args = getopt.getopt(sys.argv[1:], '', ['circle', 'angle=', 'd=', 'snr='])
opts = dict(opts) opts = dict(opts)
@ -128,3 +127,11 @@ if __name__ == '__main__':
if ch == ord(' '): if ch == ord(' '):
defocus = not defocus defocus = not defocus
update(None) update(None)
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -11,8 +11,9 @@ USAGE:
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function from __future__ import print_function
import cv2 as cv
import numpy as np import numpy as np
import cv2 as cv
import sys import sys
@ -62,8 +63,8 @@ def shift_dft(src, dst=None):
return dst return dst
if __name__ == "__main__":
def main():
if len(sys.argv) > 1: if len(sys.argv) > 1:
fname = sys.argv[1] fname = sys.argv[1]
else: else:
@ -110,4 +111,10 @@ if __name__ == "__main__":
cv.imshow("magnitude", log_spectrum) cv.imshow("magnitude", log_spectrum)
cv.waitKey(0) cv.waitKey(0)
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -27,12 +27,12 @@ Usage:
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function from __future__ import print_function
import numpy as np
import cv2 as cv
# built-in modules # built-in modules
from multiprocessing.pool import ThreadPool from multiprocessing.pool import ThreadPool
import cv2 as cv
import numpy as np
from numpy.linalg import norm from numpy.linalg import norm
# local modules # local modules

View File

@ -23,6 +23,7 @@ if PY3:
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
from multiprocessing.pool import ThreadPool from multiprocessing.pool import ThreadPool
from digits import * from digits import *

View File

@ -96,6 +96,10 @@ def main():
if ch == 27: if ch == 27:
break break
print('Done')
if __name__ == '__main__': if __name__ == '__main__':
print(__doc__)
main() main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -19,13 +19,12 @@ import cv2 as cv
from common import make_cmap from common import make_cmap
if __name__ == '__main__': def main():
import sys import sys
try: try:
fn = sys.argv[1] fn = sys.argv[1]
except: except:
fn = 'fruits.jpg' fn = 'fruits.jpg'
print(__doc__)
fn = cv.samples.findFile(fn) fn = cv.samples.findFile(fn)
img = cv.imread(fn, cv.IMREAD_GRAYSCALE) img = cv.imread(fn, cv.IMREAD_GRAYSCALE)
@ -69,4 +68,11 @@ if __name__ == '__main__':
update() update()
if need_update: if need_update:
update() update()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -23,9 +23,7 @@ import video
import sys import sys
if __name__ == '__main__': def main():
print(__doc__)
try: try:
fn = sys.argv[1] fn = sys.argv[1]
except: except:
@ -52,4 +50,11 @@ if __name__ == '__main__':
ch = cv.waitKey(5) ch = cv.waitKey(5)
if ch == 27: if ch == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -30,9 +30,8 @@ def draw_rects(img, rects, color):
for x1, y1, x2, y2 in rects: for x1, y1, x2, y2 in rects:
cv.rectangle(img, (x1, y1), (x2, y2), color, 2) cv.rectangle(img, (x1, y1), (x2, y2), color, 2)
if __name__ == '__main__': def main():
import sys, getopt import sys, getopt
print(__doc__)
args, video_src = getopt.getopt(sys.argv[1:], '', ['cascade=', 'nested-cascade=']) args, video_src = getopt.getopt(sys.argv[1:], '', ['cascade=', 'nested-cascade='])
try: try:
@ -70,4 +69,11 @@ if __name__ == '__main__':
if cv.waitKey(5) == 27: if cv.waitKey(5) == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -19,6 +19,7 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
from common import anorm, getsize from common import anorm, getsize
FLANN_INDEX_KDTREE = 1 # bug: flann enums are missing 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 return vis
if __name__ == '__main__': def main():
print(__doc__)
import sys, getopt import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], '', ['feature=']) opts, args = getopt.getopt(sys.argv[1:], '', ['feature='])
opts = dict(opts) opts = dict(opts)
@ -187,4 +186,11 @@ if __name__ == '__main__':
match_and_draw('find_obj') match_and_draw('find_obj')
cv.waitKey() cv.waitKey()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -79,9 +79,7 @@ def update(_=None):
draw_str(img, (20, 20), cur_func_name) draw_str(img, (20, 20), cur_func_name)
cv.imshow('fit line', img) cv.imshow('fit line', img)
if __name__ == '__main__': def main():
print(__doc__)
cv.namedWindow('fit line') cv.namedWindow('fit line')
cv.createTrackbar('noise', 'fit line', 3, 50, update) cv.createTrackbar('noise', 'fit line', 3, 50, update)
cv.createTrackbar('point n', 'fit line', 100, 500, update) cv.createTrackbar('point n', 'fit line', 100, 500, update)
@ -96,3 +94,11 @@ if __name__ == '__main__':
cur_func_name = dist_func_names.next() cur_func_name = dist_func_names.next()
if ch == 27: if ch == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -20,61 +20,69 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
if __name__ == '__main__': import sys
import sys
try:
fn = sys.argv[1]
except:
fn = 'fruits.jpg'
print(__doc__)
img = cv.imread(cv.samples.findFile(fn)) class App():
if img is None:
print('Failed to load image file:', fn)
sys.exit(1)
h, w = img.shape[:2] def update(self, dummy=None):
mask = np.zeros((h+2, w+2), np.uint8) if self.seed_pt is None:
seed_pt = None cv.imshow('floodfill', self.img)
fixed_range = True
connectivity = 4
def update(dummy=None):
if seed_pt is None:
cv.imshow('floodfill', img)
return return
flooded = img.copy() flooded = self.img.copy()
mask[:] = 0 self.mask[:] = 0
lo = cv.getTrackbarPos('lo', 'floodfill') lo = cv.getTrackbarPos('lo', 'floodfill')
hi = cv.getTrackbarPos('hi', 'floodfill') hi = cv.getTrackbarPos('hi', 'floodfill')
flags = connectivity flags = self.connectivity
if fixed_range: if self.fixed_range:
flags |= cv.FLOODFILL_FIXED_RANGE flags |= cv.FLOODFILL_FIXED_RANGE
cv.floodFill(flooded, mask, seed_pt, (255, 255, 255), (lo,)*3, (hi,)*3, flags) cv.floodFill(flooded, self.mask, self.seed_pt, (255, 255, 255), (lo,)*3, (hi,)*3, flags)
cv.circle(flooded, seed_pt, 2, (0, 0, 255), -1) cv.circle(flooded, self.seed_pt, 2, (0, 0, 255), -1)
cv.imshow('floodfill', flooded) cv.imshow('floodfill', flooded)
def onmouse(event, x, y, flags, param): def onmouse(self, event, x, y, flags, param):
global seed_pt
if flags & cv.EVENT_FLAG_LBUTTON: if flags & cv.EVENT_FLAG_LBUTTON:
seed_pt = x, y self.seed_pt = x, y
update() self.update()
update() def run(self):
cv.setMouseCallback('floodfill', onmouse) try:
cv.createTrackbar('lo', 'floodfill', 20, 255, update) fn = sys.argv[1]
cv.createTrackbar('hi', 'floodfill', 20, 255, update) except:
fn = 'fruits.jpg'
while True: self.img = cv.imread(cv.samples.findFile(fn))
ch = cv.waitKey() if self.img is None:
if ch == 27: print('Failed to load image file:', fn)
break sys.exit(1)
if ch == ord('f'):
fixed_range = not fixed_range h, w = self.img.shape[:2]
print('using %s range' % ('floating', 'fixed')[fixed_range]) self.mask = np.zeros((h+2, w+2), np.uint8)
update() self.seed_pt = None
if ch == ord('c'): self.fixed_range = True
connectivity = 12-connectivity self.connectivity = 4
print('connectivity =', connectivity)
update() 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'):
self.fixed_range = not self.fixed_range
print('using %s range' % ('floating', 'fixed')[self.fixed_range])
self.update()
if ch == ord('c'):
self.connectivity = 12-self.connectivity
print('connectivity =', self.connectivity)
self.update()
print('Done')
if __name__ == '__main__':
print(__doc__)
App().run()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -19,6 +19,7 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
from multiprocessing.pool import ThreadPool from multiprocessing.pool import ThreadPool
@ -47,11 +48,10 @@ def process_threaded(img, filters, threadn = 8):
np.maximum(accum, fimg, accum) np.maximum(accum, fimg, accum)
return accum return accum
if __name__ == '__main__': def main():
import sys import sys
from common import Timer from common import Timer
print(__doc__)
try: try:
img_fn = sys.argv[1] img_fn = sys.argv[1]
except: except:
@ -73,4 +73,10 @@ if __name__ == '__main__':
cv.imshow('img', img) cv.imshow('img', img)
cv.imshow('result', res2) cv.imshow('result', res2)
cv.waitKey() cv.waitKey()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -9,9 +9,10 @@ if PY3:
xrange = range xrange = range
import numpy as np import numpy as np
from numpy import random
import cv2 as cv import cv2 as cv
from numpy import random
def make_gaussians(cluster_n, img_size): def make_gaussians(cluster_n, img_size):
points = [] points = []
ref_distrs = [] 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) cv.ellipse(img, (x, y), (s1, s2), ang, 0, 360, color, 1, cv.LINE_AA)
if __name__ == '__main__': def main():
cluster_n = 5 cluster_n = 5
img_size = 512 img_size = 512
@ -66,4 +67,11 @@ if __name__ == '__main__':
ch = cv.waitKey(0) ch = cv.waitKey(0)
if ch == 27: if ch == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -32,148 +32,154 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
import sys import sys
BLUE = [255,0,0] # rectangle color class App():
RED = [0,0,255] # PR BG BLUE = [255,0,0] # rectangle color
GREEN = [0,255,0] # PR FG RED = [0,0,255] # PR BG
BLACK = [0,0,0] # sure BG GREEN = [0,255,0] # PR FG
WHITE = [255,255,255] # sure FG BLACK = [0,0,0] # sure BG
WHITE = [255,255,255] # sure FG
DRAW_BG = {'color' : BLACK, 'val' : 0} DRAW_BG = {'color' : BLACK, 'val' : 0}
DRAW_FG = {'color' : WHITE, 'val' : 1} DRAW_FG = {'color' : WHITE, 'val' : 1}
DRAW_PR_FG = {'color' : GREEN, 'val' : 3} DRAW_PR_FG = {'color' : GREEN, 'val' : 3}
DRAW_PR_BG = {'color' : RED, 'val' : 2} DRAW_PR_BG = {'color' : RED, 'val' : 2}
# setting up flags # setting up flags
rect = (0,0,1,1) rect = (0,0,1,1)
drawing = False # flag for drawing curves drawing = False # flag for drawing curves
rectangle = False # flag for drawing rect rectangle = False # flag for drawing rect
rect_over = False # flag to check if rect drawn rect_over = False # flag to check if rect drawn
rect_or_mask = 100 # flag for selecting rect or mask mode rect_or_mask = 100 # flag for selecting rect or mask mode
value = DRAW_FG # drawing initialized to FG value = DRAW_FG # drawing initialized to FG
thickness = 3 # brush thickness thickness = 3 # brush thickness
def onmouse(event,x,y,flags,param): def onmouse(self, event, x, y, flags, param):
global img,img2,drawing,value,mask,rectangle,rect,rect_or_mask,ix,iy,rect_over # Draw Rectangle
if event == cv.EVENT_RBUTTONDOWN:
self.rectangle = True
self.ix, self.iy = x,y
# Draw Rectangle elif event == cv.EVENT_MOUSEMOVE:
if event == cv.EVENT_RBUTTONDOWN: if self.rectangle == True:
rectangle = True self.img = self.img2.copy()
ix,iy = x,y 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_MOUSEMOVE: elif event == cv.EVENT_RBUTTONUP:
if rectangle == True: self.rectangle = False
img = img2.copy() self.rect_over = True
cv.rectangle(img,(ix,iy),(x,y),BLUE,2) cv.rectangle(self.img, (self.ix, self.iy), (x, y), self.BLUE, 2)
rect = (min(ix,x),min(iy,y),abs(ix-x),abs(iy-y)) self.rect = (min(self.ix, x), min(self.iy, y), abs(self.ix - x), abs(self.iy - y))
rect_or_mask = 0 self.rect_or_mask = 0
print(" Now press the key 'n' a few times until no further change \n")
elif event == cv.EVENT_RBUTTONUP: # draw touchup curves
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
print(" Now press the key 'n' a few times until no further change \n")
# draw touchup curves if event == cv.EVENT_LBUTTONDOWN:
if self.rect_over == False:
print("first draw rectangle \n")
else:
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)
if event == cv.EVENT_LBUTTONDOWN: elif event == cv.EVENT_MOUSEMOVE:
if rect_over == False: if self.drawing == True:
print("first draw rectangle \n") 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 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
else: else:
drawing = True print("No input image given, so loading default image, lena.jpg \n")
cv.circle(img,(x,y),thickness,value['color'],-1) print("Correct Usage: python grabcut.py <filename> \n")
cv.circle(mask,(x,y),thickness,value['val'],-1) filename = 'lena.jpg'
elif event == cv.EVENT_MOUSEMOVE: self.img = cv.imread(cv.samples.findFile(filename))
if drawing == True: self.img2 = self.img.copy() # a copy of original image
cv.circle(img,(x,y),thickness,value['color'],-1) self.mask = np.zeros(self.img.shape[:2], dtype = np.uint8) # mask initialized to PR_BG
cv.circle(mask,(x,y),thickness,value['val'],-1) 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', 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', self.output)
cv.imshow('input', self.img)
k = cv.waitKey(1)
# key bindings
if k == 27: # esc to exit
break
elif k == ord('0'): # BG drawing
print(" mark background regions with left mouse button \n")
self.value = self.DRAW_BG
elif k == ord('1'): # FG drawing
print(" mark foreground regions with left mouse button \n")
self.value = self.DRAW_FG
elif k == ord('2'): # PR_BG drawing
self.value = self.DRAW_PR_BG
elif k == ord('3'): # PR_FG drawing
self.value = self.DRAW_PR_FG
elif k == ord('s'): # save image
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")
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""")
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')
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__': if __name__ == '__main__':
# print documentation
print(__doc__) print(__doc__)
App().run()
# Loading images
if len(sys.argv) == 2:
filename = sys.argv[1] # for drawing purposes
else:
print("No input image given, so loading default image, lena.jpg \n")
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
# input and output windows
cv.namedWindow('output')
cv.namedWindow('input')
cv.setMouseCallback('input',onmouse)
cv.moveWindow('input',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)
k = cv.waitKey(1)
# key bindings
if k == 27: # esc to exit
break
elif k == ord('0'): # BG drawing
print(" mark background regions with left mouse button \n")
value = DRAW_BG
elif k == ord('1'): # FG drawing
print(" mark foreground regions with left mouse button \n")
value = DRAW_FG
elif k == ord('2'): # PR_BG drawing
value = DRAW_PR_BG
elif k == ord('3'): # PR_FG drawing
value = 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)
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
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)
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -18,8 +18,8 @@ Abid Rahman 3/14/12 debug Gary Bradski
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function from __future__ import print_function
import cv2 as cv
import numpy as np import numpy as np
import cv2 as cv
bins = np.arange(256).reshape(256,1) bins = np.arange(256).reshape(256,1)
@ -53,8 +53,7 @@ def hist_lines(im):
return y return y
if __name__ == '__main__': def main():
import sys import sys
if len(sys.argv)>1: if len(sys.argv)>1:
@ -116,4 +115,11 @@ if __name__ == '__main__':
print('ESC') print('ESC')
cv.destroyAllWindows() cv.destroyAllWindows()
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -11,13 +11,12 @@ Usage:
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function from __future__ import print_function
import cv2 as cv
import numpy as np import numpy as np
import cv2 as cv
import sys import sys
if __name__ == '__main__': def main():
print(__doc__)
try: try:
fn = sys.argv[1] fn = sys.argv[1]
except IndexError: except IndexError:
@ -40,3 +39,10 @@ if __name__ == '__main__':
cv.imshow("source", src) cv.imshow("source", src)
cv.waitKey(0) cv.waitKey(0)
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -13,12 +13,11 @@ from __future__ import print_function
import cv2 as cv import cv2 as cv
import numpy as np import numpy as np
import sys import sys
import math import math
if __name__ == '__main__': def main():
print(__doc__)
try: try:
fn = sys.argv[1] fn = sys.argv[1]
except IndexError: except IndexError:
@ -52,3 +51,10 @@ if __name__ == '__main__':
cv.imshow("source", src) cv.imshow("source", src)
cv.waitKey(0) cv.waitKey(0)
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -20,17 +20,16 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
from common import Sketcher from common import Sketcher
if __name__ == '__main__': def main():
import sys import sys
try: try:
fn = sys.argv[1] fn = sys.argv[1]
except: except:
fn = 'fruits.jpg' fn = 'fruits.jpg'
print(__doc__)
img = cv.imread(cv.samples.findFile(fn)) img = cv.imread(cv.samples.findFile(fn))
if img is None: if img is None:
print('Failed to load image file:', fn) print('Failed to load image file:', fn)
@ -51,4 +50,11 @@ if __name__ == '__main__':
img_mark[:] = img img_mark[:] = img
mark[:] = 0 mark[:] = 0
sketch.show() sketch.show()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -18,12 +18,13 @@ PY3 = sys.version_info[0] == 3
if PY3: if PY3:
long = int long = int
import numpy as np
import cv2 as cv import cv2 as cv
from math import cos, sin, sqrt from math import cos, sin, sqrt
import numpy as np import numpy as np
if __name__ == "__main__": def main():
img_height = 500 img_height = 500
img_width = 500 img_width = 500
kalman = cv.KalmanFilter(2, 1, 0) kalman = cv.KalmanFilter(2, 1, 0)
@ -93,4 +94,10 @@ if __name__ == "__main__":
if code in [27, ord('q'), ord('Q')]: if code in [27, ord('q'), ord('Q')]:
break break
cv.destroyWindow("Kalman") print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -18,12 +18,10 @@ import cv2 as cv
from gaussian_mix import make_gaussians from gaussian_mix import make_gaussians
if __name__ == '__main__': def main():
cluster_n = 5 cluster_n = 5
img_size = 512 img_size = 512
print(__doc__)
# generating bright palette # generating bright palette
colors = np.zeros((1, cluster_n, 3), np.uint8) colors = np.zeros((1, cluster_n, 3), np.uint8)
colors[0,:] = 255 colors[0,:] = 255
@ -43,8 +41,15 @@ if __name__ == '__main__':
cv.circle(img, (x, y), 1, c, -1) cv.circle(img, (x, y), 1, c, -1)
cv.imshow('gaussian mixture', img) cv.imshow('kmeans', img)
ch = cv.waitKey(0) ch = cv.waitKey(0)
if ch == 27: if ch == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -22,6 +22,7 @@ if PY3:
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
import video import video
from common import nothing, getsize from common import nothing, getsize
@ -44,9 +45,8 @@ def merge_lappyr(levels):
return np.uint8(np.clip(img, 0, 255)) return np.uint8(np.clip(img, 0, 255))
if __name__ == '__main__': def main():
import sys import sys
print(__doc__)
try: try:
fn = sys.argv[1] fn = sys.argv[1]
@ -72,3 +72,11 @@ if __name__ == '__main__':
if cv.waitKey(1) == 27: if cv.waitKey(1) == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -145,12 +145,10 @@ class MLP(LetterStatModel):
if __name__ == '__main__': def main():
import getopt import getopt
import sys import sys
print(__doc__)
models = [RTrees, KNearest, Boost, SVM, MLP] # NBayes models = [RTrees, KNearest, Boost, SVM, MLP] # NBayes
models = dict( [(cls.__name__.lower(), cls) for cls in models] ) models = dict( [(cls.__name__.lower(), cls) for cls in models] )
@ -186,4 +184,11 @@ if __name__ == '__main__':
fn = args['--save'] fn = args['--save']
print('saving model to %s ...' % fn) print('saving model to %s ...' % fn)
model.save(fn) model.save(fn)
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -25,6 +25,7 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
import video import video
from common import draw_str from common import draw_str
from video import presets from video import presets
@ -112,9 +113,11 @@ def main():
except: except:
video_src = 0 video_src = 0
print(__doc__)
App(video_src).run() App(video_src).run()
cv.destroyAllWindows() print('Done')
if __name__ == '__main__': if __name__ == '__main__':
print(__doc__)
main() main()
cv.destroyAllWindows()

View File

@ -23,6 +23,7 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
import video import video
from common import anorm2, draw_str from common import anorm2, draw_str
from time import clock from time import clock
@ -96,9 +97,11 @@ def main():
except: except:
video_src = 0 video_src = 0
print(__doc__)
App(video_src).run() App(video_src).run()
cv.destroyAllWindows() print('Done')
if __name__ == '__main__': if __name__ == '__main__':
print(__doc__)
main() main()
cv.destroyAllWindows()

View File

@ -13,11 +13,10 @@ Keys:
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function from __future__ import print_function
import numpy as np
import cv2 as cv import cv2 as cv
if __name__ == '__main__': def main():
print(__doc__)
import sys import sys
try: try:
fn = sys.argv[1] fn = sys.argv[1]
@ -37,3 +36,10 @@ if __name__ == '__main__':
cv.imshow('linearpolar', img3) cv.imshow('linearpolar', img3)
cv.waitKey(0) cv.waitKey(0)
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -21,9 +21,7 @@ import numpy as np
import cv2 as cv import cv2 as cv
if __name__ == '__main__': def main():
print(__doc__)
import sys import sys
from itertools import cycle from itertools import cycle
from common import draw_str from common import draw_str
@ -93,4 +91,11 @@ if __name__ == '__main__':
else: else:
cur_str_mode = str_modes.next() cur_str_mode = str_modes.next()
update() update()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -25,59 +25,64 @@ import argparse
from math import * from math import *
drag_start = None class App():
sel = (0,0,0,0) drag_start = None
sel = (0,0,0,0)
def onmouse(self, event, x, y, flags, param):
if event == cv.EVENT_LBUTTONDOWN:
self.drag_start = x, y
self.sel = (0,0,0,0)
elif event == cv.EVENT_LBUTTONUP:
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)
cv.imshow("result", result8)
self.drag_start = None
elif self.drag_start:
#print flags
if flags & cv.EVENT_FLAG_LBUTTON:
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")
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", 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)
if img is None:
continue
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')
def onmouse(event, x, y, flags, param):
global drag_start, sel
if event == cv.EVENT_LBUTTONDOWN:
drag_start = x, y
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)
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)
cv.imshow("result", result8)
drag_start = None
elif 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)
cv.imshow("gray", img)
else:
print("selection is complete")
drag_start = None
if __name__ == '__main__': if __name__ == '__main__':
print(__doc__) print(__doc__)
App().run()
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)
'''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)
if img is None:
continue
sel = (0,0,0,0)
drag_start = None
gray=cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow("gray",gray)
if cv.waitKey() == 27:
break
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -14,12 +14,16 @@ Keys:
''' '''
# Python 2/3 compatibility
from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
import video import video
import sys import sys
if __name__ == '__main__': def main():
try: try:
video_src = sys.argv[1] video_src = sys.argv[1]
except: except:
@ -42,4 +46,11 @@ if __name__ == '__main__':
cv.imshow('img', vis) cv.imshow('img', vis)
if cv.waitKey(5) == 27: if cv.waitKey(5) == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -13,11 +13,11 @@ Usage:
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function from __future__ import print_function
import numpy as np
import cv2 as cv import cv2 as cv
if __name__ == '__main__': def main():
import sys import sys
print(__doc__)
try: try:
param = sys.argv[1] param = sys.argv[1]
@ -31,3 +31,11 @@ if __name__ == '__main__':
print("\t--help\n\t\tprint this help") print("\t--help\n\t\tprint this help")
else: else:
print("Welcome to OpenCV") print("Welcome to OpenCV")
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -18,6 +18,7 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
import video import video
@ -55,9 +56,8 @@ def warp_flow(img, flow):
res = cv.remap(img, flow, None, cv.INTER_LINEAR) res = cv.remap(img, flow, None, cv.INTER_LINEAR)
return res return res
if __name__ == '__main__': def main():
import sys import sys
print(__doc__)
try: try:
fn = sys.argv[1] fn = sys.argv[1]
except IndexError: except IndexError:
@ -94,4 +94,11 @@ if __name__ == '__main__':
if show_glitch: if show_glitch:
cur_glitch = img.copy() cur_glitch = img.copy()
print('glitch is', ['off', 'on'][show_glitch]) print('glitch is', ['off', 'on'][show_glitch])
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -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) 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 import sys
from glob import glob from glob import glob
import itertools as it import itertools as it
print(__doc__)
hog = cv.HOGDescriptor() hog = cv.HOGDescriptor()
hog.setSVMDetector( cv.HOGDescriptor_getDefaultPeopleDetector() ) hog.setSVMDetector( cv.HOGDescriptor_getDefaultPeopleDetector() )
@ -68,4 +66,11 @@ if __name__ == '__main__':
ch = cv.waitKey() ch = cv.waitKey()
if ch == 27: if ch == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -7,6 +7,7 @@ Loads several images sequentially and tries to find squares in each image.
''' '''
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function
import sys import sys
PY3 = sys.version_info[0] == 3 PY3 = sys.version_info[0] == 3
@ -42,7 +43,7 @@ def find_squares(img):
squares.append(cnt) squares.append(cnt)
return squares return squares
if __name__ == '__main__': def main():
from glob import glob from glob import glob
for fn in glob('../data/pic*.png'): for fn in glob('../data/pic*.png'):
img = cv.imread(fn) img = cv.imread(fn)
@ -52,4 +53,11 @@ if __name__ == '__main__':
ch = cv.waitKey() ch = cv.waitKey()
if ch == 27: if ch == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -33,7 +33,7 @@ def write_ply(fn, verts, colors):
np.savetxt(f, verts, fmt='%f %f %f %d %d %d ') np.savetxt(f, verts, fmt='%f %f %f %d %d %d ')
if __name__ == '__main__': def main():
print('loading images...') print('loading images...')
imgL = cv.pyrDown(cv.imread(cv.samples.findFile('aloeL.jpg'))) # downscale images for faster processing 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'))) imgR = cv.pyrDown(cv.imread(cv.samples.findFile('aloeR.jpg')))
@ -75,4 +75,11 @@ if __name__ == '__main__':
cv.imshow('left', imgL) cv.imshow('left', imgL)
cv.imshow('disparity', (disp-min_disp)/num_disp) cv.imshow('disparity', (disp-min_disp)/num_disp)
cv.waitKey() cv.waitKey()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -16,7 +16,7 @@ from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv import cv2 as cv
if __name__ == '__main__': def main():
import sys import sys
try: try:
fn = sys.argv[1] fn = sys.argv[1]
@ -45,3 +45,11 @@ if __name__ == '__main__':
cv.imshow('input', img) cv.imshow('input', img)
cv.imshow('flow', vis) cv.imshow('flow', vis)
cv.waitKey() cv.waitKey()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -5,9 +5,10 @@
from __future__ import print_function from __future__ import print_function
import numpy as np import numpy as np
import cv2 as cv
from numpy import pi, sin, cos from numpy import pi, sin, cos
import cv2 as cv
defaultSize = 512 defaultSize = 512
@ -86,7 +87,7 @@ class TestSceneRender():
else: else:
self.currentRect = self.initialRect + np.int( 30*cos(self.time*self.speed) + 50*sin(self.time*self.speed)) self.currentRect = self.initialRect + np.int( 30*cos(self.time*self.speed) + 50*sin(self.time*self.speed))
if self.deformation: 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)) cv.fillConvexPoly(img, self.currentRect, (0, 0, 255))
self.time += self.timeStep self.time += self.timeStep
@ -96,8 +97,7 @@ class TestSceneRender():
self.time = 0.0 self.time = 0.0
if __name__ == '__main__': def main():
backGr = cv.imread(cv.samples.findFile('graf1.png')) backGr = cv.imread(cv.samples.findFile('graf1.png'))
fgr = cv.imread(cv.samples.findFile('box.png')) fgr = cv.imread(cv.samples.findFile('box.png'))
@ -111,6 +111,11 @@ if __name__ == '__main__':
ch = cv.waitKey(3) ch = cv.waitKey(3)
if ch == 27: if ch == 27:
break break
#import os
#print (os.environ['PYTHONPATH']) print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -27,7 +27,7 @@ USAGE: turing.py [-o <output.avi>]
Press ESC to stop. Press ESC to stop.
''' '''
if __name__ == '__main__': def main():
print(help_message) print(help_message)
w, h = 512, 512 w, h = 512, 512
@ -71,4 +71,11 @@ if __name__ == '__main__':
cv.imshow('a', vis) cv.imshow('a', vis)
if cv.waitKey(5) == 27: if cv.waitKey(5) == 27:
break break
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows() cv.destroyAllWindows()

View File

@ -32,13 +32,13 @@ Keys:
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function from __future__ import print_function
import numpy as np
import cv2 as cv
import re import re
import numpy as np
from numpy import pi, sin, cos from numpy import pi, sin, cos
import cv2 as cv
# built-in modules # built-in modules
from time import clock from time import clock

View File

@ -36,11 +36,9 @@ class DummyTask:
def get(self): def get(self):
return self.data return self.data
if __name__ == '__main__': def main():
import sys import sys
print(__doc__)
try: try:
fn = sys.argv[1] fn = sys.argv[1]
except: except:
@ -86,4 +84,11 @@ if __name__ == '__main__':
threaded_mode = not threaded_mode threaded_mode = not threaded_mode
if ch == 27: if ch == 27:
break break
cv.destroyAllWindows()
print('Done')
if __name__ == '__main__':
print(__doc__)
main()
cv.destroyAllWindows()

View File

@ -17,51 +17,62 @@ Keys:
# Python 2/3 compatibility # Python 2/3 compatibility
from __future__ import print_function from __future__ import print_function
import numpy as np
import cv2 as cv import cv2 as cv
def decode_fourcc(v): def main():
v = int(v)
return "".join([chr((v >> 8 * i) & 0xFF) for i in range(4)])
font = cv.FONT_HERSHEY_SIMPLEX def decode_fourcc(v):
color = (0, 255, 0) v = int(v)
return "".join([chr((v >> 8 * i) & 0xFF) for i in range(4)])
cap = cv.VideoCapture(0) font = cv.FONT_HERSHEY_SIMPLEX
cap.set(cv.CAP_PROP_AUTOFOCUS, False) # Known bug: https://github.com/opencv/opencv/pull/5474 color = (0, 255, 0)
cv.namedWindow("Video") cap = cv.VideoCapture(0)
cap.set(cv.CAP_PROP_AUTOFOCUS, False) # Known bug: https://github.com/opencv/opencv/pull/5474
convert_rgb = True cv.namedWindow("Video")
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)) convert_rgb = True
cv.createTrackbar("Focus", "Video", focus, 100, lambda v: cap.set(cv.CAP_PROP_FOCUS, v / 100)) 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
while True: cv.createTrackbar("FPS", "Video", fps, 30, lambda v: cap.set(cv.CAP_PROP_FPS, v))
status, img = cap.read() cv.createTrackbar("Focus", "Video", focus, 100, lambda v: cap.set(cv.CAP_PROP_FOCUS, v / 100))
fourcc = decode_fourcc(cap.get(cv.CAP_PROP_FOURCC)) while True:
status, img = cap.read()
fps = cap.get(cv.CAP_PROP_FPS) fourcc = decode_fourcc(cap.get(cv.CAP_PROP_FOURCC))
if not bool(cap.get(cv.CAP_PROP_CONVERT_RGB)): fps = cap.get(cv.CAP_PROP_FPS)
if fourcc == "MJPG":
img = cv.imdecode(img, cv.IMREAD_GRAYSCALE) if not bool(cap.get(cv.CAP_PROP_CONVERT_RGB)):
elif fourcc == "YUYV": if fourcc == "MJPG":
img = cv.cvtColor(img, cv.COLOR_YUV2GRAY_YUYV) img = cv.imdecode(img, cv.IMREAD_GRAYSCALE)
else: elif fourcc == "YUYV":
print("unsupported format") img = cv.cvtColor(img, cv.COLOR_YUV2GRAY_YUYV)
else:
print("unsupported format")
break
cv.putText(img, "Mode: {}".format(fourcc), (15, 40), font, 1.0, color)
cv.putText(img, "FPS: {}".format(fps), (15, 80), font, 1.0, color)
cv.imshow("Video", img)
k = cv.waitKey(1)
if k == 27:
break break
elif k == ord('g'):
convert_rgb = not convert_rgb
cap.set(cv.CAP_PROP_CONVERT_RGB, convert_rgb)
cv.putText(img, "Mode: {}".format(fourcc), (15, 40), font, 1.0, color) print('Done')
cv.putText(img, "FPS: {}".format(fps), (15, 80), font, 1.0, color)
cv.imshow("Video", img)
k = cv.waitKey(1)
if k == 27: if __name__ == '__main__':
break print(__doc__)
elif k == ord('g'): main()
convert_rgb = not convert_rgb cv.destroyAllWindows()
cap.set(cv.CAP_PROP_CONVERT_RGB, convert_rgb)

View File

@ -76,10 +76,10 @@ class App:
if __name__ == '__main__': if __name__ == '__main__':
print(__doc__)
import sys import sys
try: try:
fn = sys.argv[1] fn = sys.argv[1]
except: except:
fn = 'fruits.jpg' fn = 'fruits.jpg'
print(__doc__)
App(cv.samples.findFile(fn)).run() App(cv.samples.findFile(fn)).run()