2015-03-31 3 views
2

Только что повышен с OpenCV-2.4.11, KNearest, кажется, отсутствуетOpenCV 3.0.0-beta отсутствует KNN?

In [27]: import cv2 
In [28]: print(cv2.__version__) 
3.0.0-beta 

In [29]: cv2.KNearest() 

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-29-d2ea29abad59> in <module>() 
----> 1 cv2.KNearest() 

AttributeError: 'module' object has no attribute 'KNearest' 

In [30]: cv2.K 
cv2.KAZE_DIFF_CHARBONNIER  cv2.KAZE_DIFF_WEICKERT   cv2.KMEANS_RANDOM_CENTERS  cv2.KeyPoint 
cv2.KAZE_DIFF_PM_G1   cv2.KAZE_create    cv2.KMEANS_USE_INITIAL_LABELS cv2.KeyPoint_convert 
cv2.KAZE_DIFF_PM_G2   cv2.KMEANS_PP_CENTERS   cv2.KalmanFilter    cv2.KeyPoint_overlap 
+0

пара других, тоже: SIFT, FastFeatureDetector, ОРБ –

ответ

3

Многие модули были удалены из ядра OpenCV и помечены как несвободные. Эти модули имеют отдельный репозиторий и должны быть построены отдельно.

Репозиторий здесь https://github.com/itseez/opencv_contrib/

Информационный был найден в этом ответе https://stackoverflow.com/a/27419092/892914

+0

не получили достаточное количество очков, чтобы upvote; так, спасибо –

+0

Рад помочь. Пожалуйста, примите ответ, если он решит вашу проблему, этого будет достаточно. ;) – jnovacho

25

В действительности, KNearest был перемещен в модуль в opencv3 cv2.ml, и вы должны вызвать cv2.ml.KNearest_create() для использования Knn.

In [1]: import cv2 

In [2]: cv2.__version__ 
Out[2]: '3.0.0' 

In [3]: cv2.ml.KNea 
cv2.ml.KNearest_BRUTE_FORCE cv2.ml.KNearest_create cv2.ml.KNearest_KDTREE 

In [3]: cv2.ml.KNearest_create 

Для получения более подробной информации, пожалуйста, запустите help(cv2.ml.KNearest_create()).

Наслаждайтесь :)

+0

Это должен быть правильный ответ. – sonlexqt

+0

Это должен быть правильный ответ ... – theangrylama

Смежные вопросы