Commit 6977a895 authored by Alexander Mordvintsev's avatar Alexander Mordvintsev

descriptions for watershed.py and video.py

parent d015bf6f
...@@ -63,6 +63,8 @@ def update(_=None): ...@@ -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)
......
'''
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( ...@@ -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__': ...@@ -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__': ...@@ -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:
......
import numpy as np '''
import cv2 Watershed segmentation
from common import Sketcher =========
This program demonstrates the watershed segmentation algorithm
in OpenCV: watershed().
help_message = ''' Usage
USAGE: watershed.py [<image>] -----
watershed.py [image filename]
Use keys 1 - 7 to switch marker color 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__': ...@@ -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()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment