15.2.2 KNearest 클래스 사용하기
OpenCV에서 k 최근접 이웃 알고리즘은 KNearest 클래스에 구현되어 있습니다. KNearest 클래스는 ml 모듈에 포함되어 있고, cv::ml 네임스페이스에 정의되어 있습니다. KNearest 클래스를 이용하려면 먼저 KNearest 객체를 생성해야 하며, KNearest 객체는 KNearest::create() 정적 멤버 함수를 사용하여 생성할 수 있습니다. KNearest::create() 함수 원형은 다음과 같습니다.
static Ptr<KNearest> KNearest::create(); |
|
• 반환값 |
KNearest 객체를 참조하는 Ptr 스마트 포인터 객체 |
KNearest::create() 함수는 단순히 비어 있는 KNearest 객체를 생성하여 Ptr<KNearest> 타입으로 반환합니다.
KNearest 클래스는 기본적으로 k 값을 10으로 설정합니다. 이 값을 변경하려면 KNearest:: setDefaultK() 함수를 이용하여 변경할 수 있습니다. 다만 StatModel::predict() 함수 대신 KNearest::findNearest() 멤버 함수를 이용하여 테스트 데이터의 응답을 구할 경우에는 k 값을 KNearest::findNearest() 함수 인자로 명시적으로 지정할 수 있습니다.
virtual void KNearest::setDefaultK(int val); |
|
• val |
kNN 알고리즘에서 사용할 k 값. StatModel::predict() 함수를 사용할 경우 미리 k 값을 적절하게 설정해야 합니다. |