나는 문서 페이지 작업 (http://docs.opencv.org/3.1.0/d5/d26/tutorial_py_knn_understanding.html)파이썬을 OpenCV 3.1 :) (
cv2.KNearest()에 대한 예제를 얻으려고 노력했다가 cv2.ml.KNearest_create으로 대체 된 문서의 예 작동하지 KNN
그러나 다음 코드 스 니펫은 여전히 오류가 발생합니다.
#!/usr/bin/python3
import cv2
import numpy as np
import matplotlib.pyplot as plt
# Feature set containing (x,y) values of 25 known/training data
trainData = np.random.randint(0,100,(25,2)).astype(np.float32)
# Labels each one either Red or Blue with numbers 0 and 1
responses = np.random.randint(0,2,(25,1)).astype(np.float32)
# Take Red families and plot them
red = trainData[responses.ravel()==0]
plt.scatter(red[:,0],red[:,1],80,'r','^')
# Take Blue families and plot them
blue = trainData[responses.ravel()==1]
plt.scatter(blue[:,0],blue[:,1],80,'b','s')
newcomer = np.random.randint(0,100,(1,2)).astype(np.float32)
plt.scatter(newcomer[:,0],newcomer[:,1],80,'g','o')
knn = cv2.ml.KNearest_create()
knn.train(trainData,responses)
ret, results, neighbours ,dist = knn.find_nearest(newcomer, 3)
print ("result: ", results,"\n")
print ("neighbours: ", neighbours,"\n")
print ("distance: ", dist)
plt.show()
나는 실행에 다음과 같은 오류가 다음 knn.train() 함수는
>>> knn.train.__doc__
'train(trainData[, flags]) -> retval or train(samples, layout, responses) -> retval'
내가 레이아웃 정의의 예를 찾을 수 없습니다 것으로 예상
Traceback (most recent call last):
File "./knn_test.py", line 24, in <module>
knn.train(trainData,responses)
TypeError: only length-1 arrays can be converted to Python scalars
. 작동시키기 위해 필요한 변경 사항은 무엇입니까? 미리 감사드립니다.
고맙습니다! 변경이 필요한 또 다른 사항은 find_nearest가 findNearest로 변경되었습니다. (답변의 완성을 위해서). –