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.
38 lines
975 B
38 lines
975 B
#!/usr/bin/env python |
|
# -*- coding: utf-8 -*- |
|
|
|
''' |
|
This sample demonstrates structured edge detection and edgeboxes. |
|
Usage: |
|
edgeboxes_demo.py [<model>] [<input_image>] |
|
''' |
|
|
|
import cv2 as cv |
|
import numpy as np |
|
import sys |
|
|
|
if __name__ == '__main__': |
|
print(__doc__) |
|
|
|
model = sys.argv[1] |
|
im = cv.imread(sys.argv[2]) |
|
|
|
edge_detection = cv.ximgproc.createStructuredEdgeDetection(model) |
|
rgb_im = cv.cvtColor(im, cv.COLOR_BGR2RGB) |
|
edges = edge_detection.detectEdges(np.float32(rgb_im) / 255.0) |
|
|
|
orimap = edge_detection.computeOrientation(edges) |
|
edges = edge_detection.edgesNms(edges, orimap) |
|
|
|
edge_boxes = cv.ximgproc.createEdgeBoxes() |
|
edge_boxes.setMaxBoxes(30) |
|
boxes = edge_boxes.getBoundingBoxes(edges, orimap) |
|
|
|
for b in boxes: |
|
x, y, w, h = b |
|
cv.rectangle(im, (x, y), (x+w, y+h), (0, 255, 0), 1, cv.LINE_AA) |
|
|
|
cv.imshow("edges", edges) |
|
cv.imshow("edgeboxes", im) |
|
cv.waitKey(0) |
|
cv.destroyAllWindows()
|
|
|