Ht Circle detction AttributeError: у объекта 'NoneType' нет атрибута 'rint' - PullRequest
3 голосов
/ 09 марта 2020

Я пытаюсь определить этот круг, используя Houghcircle в открытом cv2, но получаю ошибку.

enter image description here

ниже мой код

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

Я предполагаю, что 1 находит круги, а [2] преобразует их в массив, я подозреваю np.around.

Объяснение будет очень ценно. С уважением.

полная ошибка:

AttributeError Traceback (последний вызов был последним) C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ numpy \ core \ fromnumeri c .py in _wrapfun c (obj, method, * args, ** kwds) 55 try: ---> 56 return getattr (obj, method) (* args, ** kwds) 57

AttributeError: у объекта 'NoneType' нет атрибута 'round'

Во время обработки вышеуказанного исключения произошло другое исключение:

Tratback AttributeError (последний вызов был последним) в ----> 1 ch = np.uint16 (np.around (ch)) # здесь появляется ошибка

C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ numpy \ core \ fromnumeri c .py около (a, десятичные дроби, out) 3005 3006 "" "-> 3007 return _wrapfun c (a, 'round', десятичные дроби = десятичные дроби, out = out) 3008 3009

C : \ ProgramData \ Anaconda3 \ lib \ site-packages \ numpy \ core \ fromnumeri c .py в _wrapfun c (obj, method, * args, ** kwds) 64 # нисходящая библиотека, такая как 'pandas' 65 кроме (AttributeError, T ypeError): ---> 66 return _wrapit (obj, method, * args, ** kwds) 67 68

C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ numpy \ core \ fromnumeri c .py в _wrapit (obj, метод, * args, ** kwds) 44 за исключением AttributeError: 45 wrap = нет ---> 46 result = getattr (asarray (obj), method) (* args, ** kwds ) 47 если обтекание: 48, если не isinstance (результат, mu.ndarray):

AttributeError: объект 'NoneType' не имеет атрибута 'rint'

1 Ответ

0 голосов
/ 10 марта 2020

Вот простой пример выполнения обнаружения круга с использованием 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()

image image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...