descriptions for watershed.py and video.py

This commit is contained in:
Alexander Mordvintsev 2012-07-02 04:44:31 +00:00
parent d015bf6f5e
commit 6977a89525
3 changed files with 54 additions and 15 deletions

View File

@ -63,6 +63,8 @@ def update(_=None):
cv2.imshow('fit line', img) cv2.imshow('fit line', img)
if __name__ == '__main__': if __name__ == '__main__':
print __doc__
cv2.namedWindow('fit line') cv2.namedWindow('fit line')
cv2.createTrackbar('noise', 'fit line', 3, 50, update) cv2.createTrackbar('noise', 'fit line', 3, 50, update)
cv2.createTrackbar('point n', 'fit line', 100, 500, update) cv2.createTrackbar('point n', 'fit line', 100, 500, update)

View File

@ -1,3 +1,32 @@
'''
Video capture sample.
Sample shows how VideoCapture class can be used to acquire video
frames from a camera of a movie file. Also the sample provides
an example of procedural video generation by an object, mimicking
the VideoCapture interface (see Chess class).
'create_capture' is a convinience function for capture creation,
falling back to procedural video in case of error.
Usage:
video.py [--shotdir <shot path>] [source0] [source1] ...'
sourceN is an
- integer number for camera capture
- name of video file
- synth:<params> for procedural video
Synth examples:
synth:bg=../cpp/lena.jpg:noise=0.1
synth:class=chess:bg=../cpp/lena.jpg:noise=0.1:size=640x480
Keys:
ESC - exit
SPACE - save current frame to <shot path> directory
'''
import numpy as np import numpy as np
import cv2 import cv2
from time import clock from time import clock
@ -100,8 +129,7 @@ presets = dict(
def create_capture(source = 0, fallback = presets['chess']): def create_capture(source = 0, fallback = presets['chess']):
''' '''source: <int> or '<int>|<filename>|synth [:<param_name>=<value> [:...]]'
source: <int> or '<int>|<filename>|synth [:<param_name>=<value> [:...]]'
''' '''
source = str(source).strip() source = str(source).strip()
chunks = source.split(':') chunks = source.split(':')
@ -136,9 +164,7 @@ if __name__ == '__main__':
import sys import sys
import getopt import getopt
print 'USAGE: video.py [--shotdir <dir>] [source0] [source1] ...' print __doc__
print "source: '<int>' or '<filename>' or 'synth:<params>'"
print
args, sources = getopt.getopt(sys.argv[1:], '', 'shotdir=') args, sources = getopt.getopt(sys.argv[1:], '', 'shotdir=')
args = dict(args) args = dict(args)
@ -146,8 +172,6 @@ if __name__ == '__main__':
if len(sources) == 0: if len(sources) == 0:
sources = [ 0 ] sources = [ 0 ]
print 'Press SPACE to save current frame'
caps = map(create_capture, sources) caps = map(create_capture, sources)
shot_idx = 0 shot_idx = 0
while True: while True:

View File

@ -1,18 +1,31 @@
import numpy as np '''
import cv2 Watershed segmentation
from common import Sketcher =========
help_message = ''' This program demonstrates the watershed segmentation algorithm
USAGE: watershed.py [<image>] in OpenCV: watershed().
Use keys 1 - 7 to switch marker color Usage
-----
watershed.py [image filename]
Keys
----
1-7 - switch marker color
SPACE - update segmentation SPACE - update segmentation
r - reset r - reset
a - switch autoupdate a - toggle autoupdate
ESC - exit ESC - exit
''' '''
import numpy as np
import cv2
from common import Sketcher
class App: class App:
def __init__(self, fn): def __init__(self, fn):
self.img = cv2.imread(fn) self.img = cv2.imread(fn)
@ -60,5 +73,5 @@ if __name__ == '__main__':
import sys import sys
try: fn = sys.argv[1] try: fn = sys.argv[1]
except: fn = '../cpp/fruits.jpg' except: fn = '../cpp/fruits.jpg'
print help_message print __doc__
App(fn).run() App(fn).run()