#python #scikit-learn
#python #scikit-learn
Вопрос:
Я пытаюсь вычислить дескрипторы сфер для изображения и сгруппировать их пространственно. Я пытался использовать DBSCAN в scikit
detector = cv2.ORB(500)
orb_kp = detector.detect(gray,None)
# compute the descriptors with ORB
kps, descs = detector.compute(gray, orb_kp)
img2 = cv2.drawKeypoints(gray,kps,color=(0,255,0), flags=0)
#extract the x,y points from the list (since kp contains various other attribs)
pts = (p.pt for p in kps)
db = DBSCAN(eps=0.3, min_samples=5).fit(pts)
но я получаю эту ошибку:
float() argument must be a string or a number
итак, я попробовал: pts = (int(p.pt) for p in kps)
и pts = ([int(p.pt.x),int(p.pt.y)] for p in kps)
и все равно получаю ту же ошибку.
Я попытался напечатать pts на python, но получил это сообщение:
print pts
None
<generator object <genexpr> at 0x10fcab3c0>
Я не уверен, как я могу «привести» float
тип для точек в int
Ответ №1:
OK публикует ответ для всех, у кого такая же проблема:
pts = (p.pt for p in kps)
неверно
это должно быть: pts = [p.pt for p in kps]
Глупый я!