之前開始學opencv的時候就看到opencv裡面有機器學習模組(machine learning,ml),但是一直以來跟著這麼多書籍學習都沒有發現有提及過(畢竟opencv是針對影象處理方面的,所以大部分書籍都以介紹影象處理方面的為主)。無意中,在《opencv和visual studio影象識別應用開發》一書中看到有ml模組的介紹,所以就打算寫下這一篇學習筆記~
在opencv中,ml模組是一組統計分類、回歸分析、資料聚類的類與統計模式函式。
下面直接給出基於opencv的ml庫的svm**:
#include
#include
#include
using namespace cv;
int main()
;mat labelsmat(4, 1, cv_32fc1, labels);
//設定訓練資料
float trainingdata[4][2] = ,,, };
mat trainingdatmat(4, 2, cv_32fc1, trainingdata);
//設定svm引數
cvsvmparams params;
params.svm_type = cvsvm::c_svc;
params.kernel_type = cvsvm::linear;
params.term_crit = cvtermcriteria(cv_termcrit_iter, 100, 1e-6);
//訓練svm
cvsvm svm;
svm.train(trainingdatmat, labelsmat, mat(), mat(), params);
vec3b green(0, 255, 0), blue(255, 0, 0);//opencv裡面儲存為bgr
//顯示svm的決定區
for (int i = 0;i < image.rows;++i)
else if (response == -1)}}
//顯示訓練資料
int thickness = -1;
int linetype = 8;
circle(image, point(501, 10), 5, scalar(0, 0, 0), thickness, linetype);
circle(image, point(255, 10), 5, scalar(255, 255, 255), thickness, linetype);
circle(image, point(501, 255), 5, scalar(255, 255, 255), thickness, linetype);
circle(image, point(10, 501), 5, scalar(255, 255, 255), thickness, linetype);
//顯示支援向量
thickness = 2;
linetype = 8;
int c = svm.get_support_vector_count();
for (int i = 0;i < c;++i)
//顯示結果
imshow("svm結果", image);
waitkey(0);
}
ML學習筆記(一)
fashion mnist model tf.keras.sequential tf.keras.layers.flatten input shape 28 28 tf.keras.layers.dense 128,activation relu tf.keras.layers.dropout 0....
OpenCV學習筆記之IplImage
首先學習下各引數的用法,以後慢慢完善 一 origin 在使用opencv顯示影象時會出現影象倒立的情況,iplimage的origin屬性有關係。origin為0表示頂左結構,即影象的原點是左上角,如果為1為左下角。一般從硬碟讀入的或者通過cvcreateimage方法建立的iplimage預設的...
opencv學習筆記之resize
前邊一篇說opencv中縮放僅有仿射變換一種,查證才知道是錯的,opencv中也有類似matlab中的imresize的函式,即是c 版的resize 當然還有影象金字塔方法 其原型為void resize inputarray src,outputarray dst,size dsize,doub...