mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.1 KiB
55 lines
1.1 KiB
#!/usr/bin/env python |
|
|
|
''' |
|
This sample demonstrates Canny edge detection. |
|
|
|
Usage: |
|
edge.py [<video source>] |
|
|
|
Trackbars control edge thresholds. |
|
|
|
''' |
|
|
|
# Python 2/3 compatibility |
|
from __future__ import print_function |
|
|
|
import cv2 |
|
import numpy as np |
|
|
|
# relative module |
|
import video |
|
|
|
# built-in module |
|
import sys |
|
|
|
|
|
if __name__ == '__main__': |
|
print(__doc__) |
|
|
|
try: |
|
fn = sys.argv[1] |
|
except: |
|
fn = 0 |
|
|
|
def nothing(*arg): |
|
pass |
|
|
|
cv2.namedWindow('edge') |
|
cv2.createTrackbar('thrs1', 'edge', 2000, 5000, nothing) |
|
cv2.createTrackbar('thrs2', 'edge', 4000, 5000, nothing) |
|
|
|
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 = np.uint8(vis/2.) |
|
vis[edge != 0] = (0, 255, 0) |
|
cv2.imshow('edge', vis) |
|
ch = cv2.waitKey(5) |
|
if ch == 27: |
|
break |
|
cv2.destroyAllWindows()
|
|
|