ผลต่างระหว่างรุ่นของ "Hough Circle Transform"
จาก Morange Wiki
Patcharapun (คุย | มีส่วนร่วม) (success) |
Patcharapun (คุย | มีส่วนร่วม) |
||
แถว 36: | แถว 36: | ||
== Result == | == Result == | ||
− | <center>[[ไฟล์:Detected circles 083.png | | + | <center>[[ไฟล์:Detected circles 083.png | frame | 250px | Find circle]]</center> |
รุ่นแก้ไขปัจจุบันเมื่อ 11:48, 8 สิงหาคม 2559
Hough Circle Transform
วัตถุประสงค์
- ในบทนี้จะเรียนรู้เรื่อง
- การหาวงกลมโดยใช้ Hough Transform ในรูปภาพ
- โดยใช้ฟังก์ชั่น : cv2.HoughCircles()
หลักการคือ
- ในการหาวงกลมโดยทางสูตรคณิตศาสตร์นั้นคือ (x−xcenter)2+(y−ycenter)2=r2 เมื่อ (xcenter,ycenter) โดยจะหาตรงกลางของวงกลมก่อน และ r นั้นคือ radius ของวงกลม จากนั้น เราจะมี 3 parameter จากนั้นจำเป็นที่ต้องมี คิวมูเลเตอร์ 3 มิติมาช่วย โดย OpenCV นั้นมีฟังก์ชั่นที่ช่วยในการหาและแก้สูตรนั้น และพลิกแพงการใช้งาน Hough Gradient Method โดยใช้การไล่ระดับสีของ Edges
- โดยฟังก์ชั่นที่เราใช้คือฟังก์ชั่น cv2.HoughCircles().
Code Example
import cv2 import numpy as np img = cv2.imread('opencv_logo.png',0) img = cv2.medianBlur(img,5) cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR) circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20, param1=50,param2=30,minRadius=0,maxRadius=0) circles = np.uint16(np.around(circles)) for i in circles[0,:]: # draw the outer circle cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2) # draw the center of the circle cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3) cv2.imshow('detected circles',cimg) cv2.waitKey(0) cv2.destroyAllWindows()