February 2020
Intermediate to advanced
372 pages
9h 26m
English
OpenCV also has a function for detecting circles, called HoughCircles. It works in a very similar fashion to HoughLines, but where minLineLength and maxLineGap were the parameters to be used to discard or retain lines, HoughCircles has a minimum distance between a circle's centers, as well as minimum and maximum values for a circle's radius. Here is the obligatory example:
import cv2import numpy as npplanets = cv2.imread('planet_glow.jpg')gray_img = cv2.cvtColor(planets, cv2.COLOR_BGR2GRAY)gray_img = cv2.medianBlur(gray_img, 5)circles = cv2.HoughCircles(gray_img,cv2.HOUGH_GRADIENT,1,120, param1=100,param2=30,minRadius=0,maxRadius=0)circles = np.uint16(np.around(circles))for i in circles[0,:]: # draw the outer circle cv2.circle(planets,(i[0],i[1]),i[2],(0,255,0),2) ...