python opencv3 圓檢測


git:https://github.com/linyi0604/Computer-Vision

 1 # coding:utf8
 2 
 3 import cv2  4 import numpy as np  5 
 6 img_origin = cv2.imread("../data/circle.jpg")  7 img_gray = cv2.cvtColor(img_origin, cv2.COLOR_BGR2GRAY)  8 # 低同濾波進行平滑圖像
 9 img = cv2.medianBlur(img_gray, 5) 10 cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) 11 
12 circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 120, 13                            param1=100,param2=30, 14                            minRadius=0, maxRadius=0) 15 """
16 cv2.HoughCircles(image, method, dp, 17  minDist, circles, param1, param2, 18  minRadius, maxRadius) 19 參數: 20  image: 輸入圖像 必須是灰度圖像 21  method:檢測方法,常用CV_HOUGH_GRADIENT 22  dp:檢測內側圓心的累加器圖像的分辨率於輸入圖像之比的倒數, 23  如dp=1,累加器和輸入圖像具有相同的分辨率,如果dp=2, 24  累計器便有輸入圖像一半那么大的寬度和高度 25  minDist: 兩個圓心之間的最小距離 26  param1: 默認100, 是method方法的參數 27  在CV_HOUGH_GRADIENT表示傳入canny邊緣檢測的閾值 28  param2: 默認100,method的參數, 29  對當前唯一的方法霍夫梯度法cv2.HOUGH_GRADIENT, 30  它表示在檢測階段圓心的累加器閾值, 31  它越小,就越可以檢測到更多根本不存在的圓, 32  而它越大的話,能通過檢測的圓就更加接近完美的圓形了 33  minRadius:默認值0,圓半徑的最小值 34  maxRadius:默認值0,圓半徑的最大值 35 返回值: 36     
37 """
38 # 整數化
39 circles = np.uint16(np.around(circles)) 40 
41 for i in circles[0, :]: 42     # 畫出外邊圓
43     cv2.circle(img_origin, (i[0], i[1]), i[2], (0, 255, 0), 2) 44     # 畫出圓心
45     cv2.circle(img_origin, (i[0], i[1]), 2, (0, 0, 255), 3) 46 
47 
48 cv2.imshow("", img_origin) 49 cv2.waitKey() 50 cv2.destroyAllWindows()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM