From: Siva Prasad Varma Date: Fri, 5 Apr 2013 09:02:07 +0000 (+0530) Subject: Add HoughTransform examples python2 X-Git-Tag: accepted/tizen/6.0/unified/20201030.111113~3932^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3b0ce8e1327665e9c2e0aacfc8c22cc57e7235d4;p=platform%2Fupstream%2Fopencv.git Add HoughTransform examples python2 houghlines.py for HoughLinesP() and HoughLines() houghcircles.py for HoughCircles() --- diff --git a/samples/python2/houghcircles.py b/samples/python2/houghcircles.py new file mode 100755 index 0000000..45f4576 --- /dev/null +++ b/samples/python2/houghcircles.py @@ -0,0 +1,33 @@ +#!/usr/bin/python + +''' +This example illustrates how to use cv2.HoughCircles() function. +Usage: ./houghcircles.py [] +image argument defaults to ../cpp/board.jpg +''' + +import cv2 +import numpy as np +import sys + + +print __doc__ +try: + fn = sys.argv[1] +except: + fn = "../cpp/board.jpg" + +src = cv2.imread(fn, 1) +img = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) +img = cv2.medianBlur(img, 5) +cimg = src.copy() # numpy function + +circles = cv2.HoughCircles(img, cv2.cv.CV_HOUGH_GRADIENT, 1, 10, np.array([]), 100, 30, 1, 30) +a, b, c = circles.shape +for i in range(b): + cv2.circle(cimg, (circles[0][i][0], circles[0][i][1]), circles[0][i][2], (0, 0, 255), 3, cv2.cv.CV_AA) + cv2.circle(cimg, (circles[0][i][0], circles[0][i][1]), 2, (0, 255, 0), 3, cv2.cv.CV_AA) # draw center of circle + +cv2.imshow("source", src) +cv2.imshow("detected circles", cimg) +cv2.waitKey(0) diff --git a/samples/python2/houghlines.py b/samples/python2/houghlines.py new file mode 100755 index 0000000..9755d87 --- /dev/null +++ b/samples/python2/houghlines.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +''' +This example illustrates how to use Hough Transform to find lines +Usage: ./houghlines.py [] +image argument defaults to ../cpp/pic1.png +''' +import cv2 +import numpy as np +import sys +import math + +try: + fn = sys.argv[1] +except: + fn = "../cpp/pic1.png" +print __doc__ +src = cv2.imread(fn) +dst = cv2.Canny(src, 50, 200) +cdst = cv2.cvtColor(dst, cv2.COLOR_GRAY2BGR) + +# HoughLines() +# lines = cv2.HoughLines(dst, 1, cv2.cv.CV_PI/180.0, 50, np.array([]), 0, 0) +# a,b,c = lines.shape +# for i in range(b): +# rho = lines[0][i][0] +# theta = lines[0][i][1] +# a = math.cos(theta) +# b = math.sin(theta) +# x0, y0 = a*rho, b*rho +# pt1 = ( int(x0+1000*(-b)), int(y0+1000*(a)) ) +# pt2 = ( int(x0-1000*(-b)), int(y0-1000*(a)) ) +# cv2.line(cdst, pt1, pt2, (0, 0, 255), 3, cv2.cv.CV_AA) + +lines = cv2.HoughLinesP(dst, 1, cv2.cv.CV_PI/180.0, 50, np.array([]), 50, 10) +a,b,c = lines.shape +for i in range(b): + cv2.line(cdst, (lines[0][i][0], lines[0][i][1]), (lines[0][i][2], lines[0][i][3]), (0, 0, 255), 3, cv2.cv.CV_AA) + +cv2.imshow("source", src) +cv2.imshow("detected lines", cdst) +cv2.waitKey(0)