Hough Circle detction AttributeError: 'NoneType' object has no attribute 'rint'

quadhd :

I am trying to detect this circle using Houghcircle in open cv2, but am getting an error.

enter image description here

below is my code

1

chh = cv2.HoughCircles(crr, cv2.HOUGH_GRADIENT, 1,minDist = 50, param1 =200, 
param2 = 18, minRadius = 20, maxRadius =60)

[2]

ch = np.uint16(np.around(ch)) #error appears to come from here

Am assuming the 1 finds the circles while [2] converts it into an array,am suspecting np.around.

An explanation would be greatly valued. Kind regards.

full error:

AttributeError Traceback (most recent call last) C:\ProgramData\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in _wrapfunc(obj, method, *args, **kwds) 55 try: ---> 56 return getattr(obj, method)(*args, **kwds) 57

AttributeError: 'NoneType' object has no attribute 'round'

During handling of the above exception, another exception occurred:

AttributeError Traceback (most recent call last) in ----> 1 ch = np.uint16(np.around(ch)) #error appears to come from here

C:\ProgramData\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in around(a, decimals, out) 3005 3006 """ -> 3007 return _wrapfunc(a, 'round', decimals=decimals, out=out) 3008 3009

C:\ProgramData\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in _wrapfunc(obj, method, *args, **kwds) 64 # a downstream library like 'pandas'. 65 except (AttributeError, TypeError): ---> 66 return _wrapit(obj, method, *args, **kwds) 67 68

C:\ProgramData\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in _wrapit(obj, method, *args, **kwds) 44 except AttributeError: 45 wrap = None ---> 46 result = getattr(asarray(obj), method)(*args, **kwds) 47 if wrap: 48 if not isinstance(result, mu.ndarray):

AttributeError: 'NoneType' object has no attribute 'rint'

nathancy :

Here's a simple example to perform circle detection using cv2.HoughCircles

import cv2
import numpy as np

# Load image, grayscale, Otsu's threshold
image = cv2.imread('1.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]

# Find circles with HoughCircles
circles = cv2.HoughCircles(thresh, cv2.HOUGH_GRADIENT, 1, minDist=150, param1=200, param2=18, minRadius=20)

# Draw circles
if circles is not None:
    circles = np.round(circles[0, :]).astype("int")
    for (x,y,r) in circles:
        cv2.circle(image, (x,y), r, (36,255,12), 3)

cv2.imshow('thresh', thresh)
cv2.imshow('image', image)
cv2.waitKey()

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=293615&siteId=1