// 參考資料:(建議先閱讀此處)
// //
#include
#include
#include
#include
#include
void
init()
const
auto offsetrow = i * b;
for(
int j =
0; j < n;
++j)
} std::cout <<
"init done.\n"
<< std::endl;
}void
trainandpredict
(int k)
} traindata.
convertto
(traindata, cv_32f)
;// 這是新版opencv的介面,網上很多資料都舊了,所以我就寫一篇文章介紹一下新版介面的用法
auto knn = cv::ml::knearest::
create()
; knn-
>
setdefaultk
(k);
knn-
>
setisclassifier
(true);
knn-
>
setalgorithmtype
(cv::ml::knearest::brute_force)
; knn-
>
train
(traindata, cv::ml::row_sample, trainlabel)
; std::cout <<
"predicting..."
<< std::endl;
auto testnum =
0, truenum =0;
for(
int i =
0; i <10;
++i)}}
std::cout <<
"k: "
<< k << std::endl;
std::cout <<
"truenum: "
<< truenum << std::endl;
std::cout <<
"testnum: "
<< testnum << std::endl;
std::cout <<
"result: "
<<
1.0* truenum / testnum << std::endl;
std::cout << std::endl;
}int
main()
return0;
}
效果圖: OpenCV3 4 3 SVM使用教程
參考資料 建議先閱讀此處 include include include include intmain cv mat labelsmat 4 1,cv 32sc1,labels cv 32sc1 32位有符號單通道矩陣 設定訓練資料的座標,注意要和前面的labels對應起來 float train...
OpenCV實現KNN演算法
原文 opencv實現knn演算法 這個演算法首先貯藏所有的訓練樣本,然後通過分析 包括選舉,計算加權和等方式 乙個新樣本周圍k個最近鄰以給出該樣本的相應值。這種方法有時候被稱作 基於樣本的學習 即為了 我們對於給定的輸入搜尋最近的已知其相應的特徵向量。class cvknearest public...
OpenCV 115 KNN演算法應用
opencv中機器學習模組的最近鄰演算法knn,對使用knn訓練好的檔案,可以通過演算法介面的load方法載入成為knn分類器,使用findnearest方法進行 opencv knn 方法引數解釋如下 retval,results,neighborresponses,dist cv.ml knea...