edge.py 1006 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10
'''
This sample demonstrates Canny edge detection.

Usage:
  edge.py [<video source>]

  Trackbars control edge thresholds.

'''

11
import cv2
Alexander Mordvintsev's avatar
Alexander Mordvintsev committed
12 13 14
import video
import sys

15

16
if __name__ == '__main__':
17 18
    print __doc__
    
19
    try: fn = sys.argv[1]
20
    except: fn = 0
Alexander Mordvintsev's avatar
Alexander Mordvintsev committed
21

22 23
    def nothing(*arg):
        pass
Alexander Mordvintsev's avatar
Alexander Mordvintsev committed
24

25 26 27
    cv2.namedWindow('edge')
    cv2.createTrackbar('thrs1', 'edge', 2000, 5000, nothing)
    cv2.createTrackbar('thrs2', 'edge', 4000, 5000, nothing)
Alexander Mordvintsev's avatar
Alexander Mordvintsev committed
28

29 30 31 32 33 34 35 36 37 38 39 40 41 42
    cap = video.create_capture(fn)
    while True:
        flag, img = cap.read()
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        thrs1 = cv2.getTrackbarPos('thrs1', 'edge')
        thrs2 = cv2.getTrackbarPos('thrs2', 'edge')
        edge = cv2.Canny(gray, thrs1, thrs2, apertureSize=5)
        vis = img.copy()
        vis /= 2
        vis[edge != 0] = (0, 255, 0)
        cv2.imshow('edge', vis)
        ch = cv2.waitKey(5)
        if ch == 27:
            break
43
    cv2.destroyAllWindows() 			
Alexander Mordvintsev's avatar
Alexander Mordvintsev committed
44