91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.15MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-17
  • 語言: 其他
  • 標簽: hog+Svm??

資源簡介

在OpenCV3.4.1上使用hog+svm實現了數字識別,提供了檢測與訓練部分,訓練已經訓練,可以直接運行。

資源截圖

代碼片段和文件信息


#include?
#include?
#include?
#include?“opencv2/objdetect.hpp“
#include?

using?namespace?cv::ml;
using?namespace?cv;
using?namespace?std;
string?pathName?=?“digits.png“;
int?SZ?=?20;
float?affineFlags?=?WARP_INVERSE_MAP?|?INTER_LINEAR;

//傾斜矯正
Mat?deskew(Mat&?img)?{
Moments?m?=?moments(img);
if?(abs(m.mu02)? return?img.clone();
}
float?skew?=?m.mu11?/?m.mu02;
Mat?warpMat?=?(Mat_(2?3)?< Mat?imgOut?=?Mat::zeros(img.rows?img.cols?img.type());
warpAffine(img?imgOut?warpMat?imgOut.size()?affineFlags);

return?imgOut;
}


//加載訓練測試數據集標簽
void?loadTrainTestLabel(string?&pathName?vector?&trainCells??vector?&trainLabels)?{

Mat?img?=?imread(pathName?CV_LOAD_IMAGE_GRAYSCALE);
int?ImgCount?=?0;
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
Mat?digitImg?=?(img.colRange(j?j?+?SZ).rowRange(i?i?+?SZ)).clone();

trainCells.push_back(digitImg);

ImgCount++;
}
}

cout?<
float?digitClassNumber?=?0;
for?(int?z?=?0;?z {
if?(z?%?500?==?0?&&?z?!=?0)
{
digitClassNumber?=?digitClassNumber?+?1;
}
trainLabels.push_back(digitClassNumber);
}
}
//?創建傾斜矯正后的訓練集測試集
void?CreateDeskewedTrainTest(vector?&deskewedTrainCells?vector?&trainCells)?{


for?(int?i?=?0;?i
Mat?deskewedImg?=?deskew(trainCells[i]);
deskewedTrainCells.push_back(deskewedImg);
}

}
//HOG特征描述子
HOGDescriptor?hog(
Size(20?20)?//winSize
Size(10?10)?//blocksize
Size(5?5)?//blockStride
Size(10?10)?//cellSize
9?//nbins
1?//derivAper
-1?//winSigma
0?//histogramNormType
0.2?//L2HysThresh
0//gammal?correction
64//nlevels=64
1);
//創建訓練測試HOG特征,并將計算結果保存至
void?CreateTrainTestHOG(vector?>?&trainHOG?vector?&deskewedtrainCells)?{
//train?hog大小為num*hogsize

for?(int?y?=?0;?y vector?descriptors;
hog.compute(deskewedtrainCells[y]?descriptors?Size(2?2)?Size(0?0));
trainHOG.push_back(descriptors);
}


}

void?ConvertVectortoMatrix(vector?>?&trainHOG??Mat?&trainMat)
{

int?descriptor_size?=?trainHOG[0].size();//第一個樣本的特征大小

for?(int?i?=?0;?i for?(int?j?=?0;?jriptor_size;?j++)?{
trainMat.at(i?j)?=?trainHOG[i][j];
}
}


}

void?getSVMParams(SVM?*svm)
{
cout?<getKernelType()?< cout?<getType()?< cout?<getC()?< cout?<getDegree()?< cout?<getNu()?< cout?<getGamma()?<}

void?SVMtrain(M

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????721129??2017-01-30?07:04??digits.png
?????文件????????5031??2018-04-30?19:05??main.cpp
?????文件?????1783266??2018-04-30?17:10??model4.yml

評論

共有 條評論