主要有4點總結:
1.
讀取txt的內容(檔案路徑),按行輸出。下面語句中,pictures.txt中是資料夾中的檔案()列表,samplepath是資料夾路徑(string格式)。string和char型別可以使用『+』連線。
char positiveimgname[256];
fream f;
f.open("d:\\pictures.txt",ios::in);
while (!f.eof())
2.
對於某些樣本**,可能大小不如我們所願,因此要對其進行擷取。
我們可以從mat型別中提取矩形區域:
cv:
:mat bigimage=cv:
:mat
::zeros(cv:
:size(660,350));
cv::mat smallimage=cv:
:mat(bigimage,cv:
:rect(0,0,110,70));
cv:
:mat smallimage = cv:
:mat(bigimage, cv:
:rect(0,0,110,70)).clone();
如果需要影象中多個不同大小的部分,需要將影象用網格劃分,比如:
cv::size smallsize(110,70);
std::vector
smallimages;
for (int y = 0; y < bigimage.rows; y += smallsize.height)
}
在影象處理中,樣本的處理需要使用第二中複製資料的方式。
3.
使用dir\b>picture.lst命令列獲取乙個資料夾內所有檔案的檔名,會在文件的最後多產生乙個空行。
4.
訓練出來的svm classifier的support vector是以mat型別進行儲存,其rows是根據svm的引數而變化的,如果是二分類分類器,應該是1*n的大小。如果和規劃的不一致,去檢視訓練資料是否有誤(是否有些label未賦值等)。
OpenCv3 0 SVM的使用心得(二)
主要有4點總結 1.讀取txt的內容 檔案路徑 按行輸出。下面語句中,pictures.txt中是資料夾中的檔案 列表,samplepath是資料夾路徑 string格式 string和char型別可以使用 連線。char positiveimgname 256 fream f f.open d p...
使用opencv下的SVM分類器
關於svm分類器的基本原理,請參 考對於一般使用來說只需要知道它可以在訓練之後進行資料分類就可以了。opencv內建了svm的函式,接下來是如何使用。首先我們必須了解svm是用來將向量進行分類的,這也就意味著我們訓練和分類的資料必須是向量。這個是我進行樣本獲取的例子 vector path name...
OpenCV3 4 3 SVM使用教程
參考資料 建議先閱讀此處 include include include include intmain cv mat labelsmat 4 1,cv 32sc1,labels cv 32sc1 32位有符號單通道矩陣 設定訓練資料的座標,注意要和前面的labels對應起來 float train...