title: Detect circle with python opencv - Hough Transform
body: <p>I tried to detect the external circle of that <a href="https://i.stack.imgur.com/CDsNM.png" rel="nofollow noreferrer">image</a></p>
  
  <p>However, no matter how I set the params of the Hough Transform, I can't detect the external circle.</p>
  
  <p>My code is the next:</p>
  
  <pre><code>###############################
  #Circle detection
  ###############################
  height, width = image.shape
  
  circles = cv2.HoughCircles(image,cv2.HOUGH_GRADIENT,.3,20,param1=100,param2=100,minRadius=int(min(width,height)/3),maxRadius=int(min(width,height)))
  
  circles = np.uint16(np.around(circles))
  
  cimg=origin
  
  for i in circles[0,:]:
      cv2.circle(cimg,(i[0],i[1]),i[2],(255,0,0),1) #DRAW ALL CIRCLES IN BLUE
      cv2.circle(cimg,(i[0],i[1]),2,(255,0,0),1)
  
  
  ###############################
  #FIND HIGHER CIRCLE
  ###############################
  #I go through all the circles and 
  #take the one with the greatest radio
  max_index=0
  max_i=circles[0,max_index,2]
  for indx, i in enumerate(circles[0,:]):
      if i[2]&gt;max_i:
          max_i=i[2]
          max_index=indx   #indx of higher circle
  
  circle_max=max_i
  x_max=circles[0,max_index,0]
  y_max=circles[0,max_index,1]
  r_max=circles[0,max_index,2]
  
  cv2.circle(cimg,(x_max,y_max),r_max,(0,0,255),1) #DRAW HIGHER CIRCLE IN RED
  cv2.circle(cimg,(x_max,y_max),2,(0,0,255),3)
  </code></pre>
  
  <p>This code detect a lot of circles, but the external circle never appears.</p>