added _doc.py -- doc-string ckecking utility
added some sample description
This commit is contained in:
parent
122f59560c
commit
d9185ec21b
@ -1,24 +1,29 @@
|
|||||||
|
'''
|
||||||
|
Utility for measuring python opencv API coverage by samples.
|
||||||
|
'''
|
||||||
|
|
||||||
from glob import glob
|
from glob import glob
|
||||||
import cv2
|
import cv2
|
||||||
import re
|
import re
|
||||||
|
|
||||||
cv2_callable = set(['cv2.'+name for name in dir(cv2) if callable( getattr(cv2, name) )])
|
if __name__ == '__main__':
|
||||||
|
cv2_callable = set(['cv2.'+name for name in dir(cv2) if callable( getattr(cv2, name) )])
|
||||||
|
|
||||||
found = set()
|
found = set()
|
||||||
for fn in glob('*.py'):
|
for fn in glob('*.py'):
|
||||||
print ' --- ', fn
|
print ' --- ', fn
|
||||||
code = open(fn).read()
|
code = open(fn).read()
|
||||||
found |= set(re.findall('cv2?\.\w+', code))
|
found |= set(re.findall('cv2?\.\w+', code))
|
||||||
|
|
||||||
cv2_used = found & cv2_callable
|
cv2_used = found & cv2_callable
|
||||||
cv2_unused = cv2_callable - cv2_used
|
cv2_unused = cv2_callable - cv2_used
|
||||||
with open('unused_api.txt', 'w') as f:
|
with open('unused_api.txt', 'w') as f:
|
||||||
f.write('\n'.join(sorted(cv2_unused)))
|
f.write('\n'.join(sorted(cv2_unused)))
|
||||||
|
|
||||||
r = 1.0 * len(cv2_used) / len(cv2_callable)
|
r = 1.0 * len(cv2_used) / len(cv2_callable)
|
||||||
print '\ncv2 api coverage: %d / %d (%.1f%%)' % ( len(cv2_used), len(cv2_callable), r*100 )
|
print '\ncv2 api coverage: %d / %d (%.1f%%)' % ( len(cv2_used), len(cv2_callable), r*100 )
|
||||||
|
|
||||||
print '\nold (cv) symbols:'
|
print '\nold (cv) symbols:'
|
||||||
for s in found:
|
for s in found:
|
||||||
if s.startswith('cv.'):
|
if s.startswith('cv.'):
|
||||||
print s
|
print s
|
||||||
|
14
samples/python2/_doc.py
Normal file
14
samples/python2/_doc.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
'''
|
||||||
|
Scans current directory for *.py files and reports
|
||||||
|
ones with missing __doc__ string.
|
||||||
|
'''
|
||||||
|
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
print '--- undocumented files:'
|
||||||
|
for fn in glob('*.py'):
|
||||||
|
loc = {}
|
||||||
|
execfile(fn, loc)
|
||||||
|
if '__doc__' not in loc:
|
||||||
|
print fn
|
@ -1,3 +1,7 @@
|
|||||||
|
'''
|
||||||
|
This module contais some common routines used by other samples.
|
||||||
|
'''
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import cv2
|
import cv2
|
||||||
import os
|
import os
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
'''
|
||||||
|
Sample-launcher application.
|
||||||
|
'''
|
||||||
|
|
||||||
import Tkinter as tk
|
import Tkinter as tk
|
||||||
from ScrolledText import ScrolledText
|
from ScrolledText import ScrolledText
|
||||||
from glob import glob
|
from glob import glob
|
||||||
|
@ -1,20 +1,25 @@
|
|||||||
import numpy as np
|
'''
|
||||||
import cv2
|
Distance transform sample.
|
||||||
import cv2.cv as cv
|
|
||||||
from common import make_cmap
|
|
||||||
|
|
||||||
help_message = '''USAGE: distrans.py [<image>]
|
Usage:
|
||||||
|
distrans.py [<image>]
|
||||||
|
|
||||||
Keys:
|
Keys:
|
||||||
ESC - exit
|
ESC - exit
|
||||||
v - toggle voronoi mode
|
v - toggle voronoi mode
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
import cv2
|
||||||
|
import cv2.cv as cv
|
||||||
|
from common import make_cmap
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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__
|
||||||
|
|
||||||
img = cv2.imread(fn, 0)
|
img = cv2.imread(fn, 0)
|
||||||
cm = make_cmap('jet')
|
cm = make_cmap('jet')
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import numpy as np
|
'''
|
||||||
import cv2
|
Floodfill sample.
|
||||||
|
|
||||||
help_message = '''USAGE: floodfill.py [<image>]
|
Usage:
|
||||||
|
floodfill.py [<image>]
|
||||||
|
|
||||||
Click on the image to set seed point
|
Click on the image to set seed point
|
||||||
|
|
||||||
Keys:
|
Keys:
|
||||||
f - toggle floating range
|
f - toggle floating range
|
||||||
@ -11,11 +12,14 @@ Keys:
|
|||||||
ESC - exit
|
ESC - exit
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
import cv2
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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__
|
||||||
|
|
||||||
img = cv2.imread(fn, True)
|
img = cv2.imread(fn, True)
|
||||||
h, w = img.shape[:2]
|
h, w = img.shape[:2]
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
import numpy as np
|
'''
|
||||||
import cv2
|
Inpainting sample.
|
||||||
from common import Sketcher
|
|
||||||
|
|
||||||
help_message = '''USAGE: inpaint.py [<image>]
|
Inpainting repairs damage to images by floodfilling
|
||||||
|
the damage with surrounding image areas.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
inpaint.py [<image>]
|
||||||
|
|
||||||
Keys:
|
Keys:
|
||||||
SPACE - inpaint
|
SPACE - inpaint
|
||||||
@ -10,11 +13,15 @@ Keys:
|
|||||||
ESC - exit
|
ESC - exit
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
import cv2
|
||||||
|
from common import Sketcher
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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__
|
||||||
|
|
||||||
img = cv2.imread(fn)
|
img = cv2.imread(fn)
|
||||||
img_mark = img.copy()
|
img_mark = img.copy()
|
||||||
|
@ -1,8 +1,22 @@
|
|||||||
|
'''
|
||||||
|
Morphology operations.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
morphology.py [<image>]
|
||||||
|
|
||||||
|
Keys:
|
||||||
|
1 - change operation
|
||||||
|
2 - change structure element shape
|
||||||
|
ESC - exit
|
||||||
|
'''
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import cv2
|
import cv2
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__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
|
||||||
@ -44,10 +58,6 @@ if __name__ == '__main__':
|
|||||||
cv2.createTrackbar('op/size', 'morphology', 12, 20, update)
|
cv2.createTrackbar('op/size', 'morphology', 12, 20, update)
|
||||||
cv2.createTrackbar('iters', 'morphology', 1, 10, update)
|
cv2.createTrackbar('iters', 'morphology', 1, 10, update)
|
||||||
update()
|
update()
|
||||||
print "Controls:"
|
|
||||||
print " 1 - change operation"
|
|
||||||
print " 2 - change structure element shape"
|
|
||||||
print
|
|
||||||
while True:
|
while True:
|
||||||
ch = 0xFF & cv2.waitKey()
|
ch = 0xFF & cv2.waitKey()
|
||||||
if ch == 27:
|
if ch == 27:
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
'''
|
||||||
|
Simple "Square Detector" program.
|
||||||
|
|
||||||
|
Loads several images sequentially and tries to find squares in each image.
|
||||||
|
'''
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import cv2
|
import cv2
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user