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

  • 大小: 17.92MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2023-07-22
  • 語(yǔ)言: 其他
  • 標(biāo)簽: OpenCV??HOG??SVM??多分類??

資源簡(jiǎn)介

使用VS2013+OPENCV 2.4.10 離線訓(xùn)練及識(shí)別手勢(shì)圖片獲得識(shí)別率

資源截圖

代碼片段和文件信息


#include?
#include?“opencv2/opencv.hpp“
#include?“windows.h“
#include?“fstream“
#include???

using?namespace?std;
using?namespace?cv;
int?imagehigh?=32;
int?imagewight?=24;
int?_tmain(int?argc?_TCHAR*?argv[])
{
vector?img_path;//圖像路徑容器??
vector?img_catg;//圖像類別容器
int?nLine?=?0;
string?buf;
ifstream?svm_data(“C:\\Users\\MelonH\\Desktop\\樣本2\\新建文件夾\\手勢(shì)路徑.txt“);//訓(xùn)練樣本圖片的路徑都寫(xiě)在這個(gè)txt文件中,使用bat批處理文件可以得到這個(gè)txt文件?
if?(!svm_data)
return?1;
unsigned?long?n;
while?(svm_data)//將訓(xùn)練樣本文件依次讀取進(jìn)來(lái)????
{
if?(getline(svm_data?buf))
{
nLine++;
if?(nLine?%?2?==?0)//注:奇數(shù)行是圖片全路徑,偶數(shù)行是標(biāo)簽?
{
img_catg.push_back(atoi(buf.c_str()));//atoi將字符串轉(zhuǎn)換成整型,標(biāo)志(01,2,...,9),注意這里至少要有兩個(gè)類別,否則會(huì)出錯(cuò)????
}
else
{
img_path.push_back(buf);//圖像路徑????
}
}
}
svm_data.close();//關(guān)閉文件????
CvMat?*data_mat?*res_mat;
int?nImgNum?=?nLine?/?2;?//nImgNum是樣本數(shù)量,只有文本行數(shù)的一半,另一半是標(biāo)簽?????
data_mat?=?cvCreateMat(nImgNum216?CV_32FC1);??//第二個(gè)參數(shù),即矩陣的列是由下面的descriptors的大小決定的,可以由descriptors.size()得到,且對(duì)于不同大小的輸入訓(xùn)練圖片,這個(gè)值是不同的??
cvSetZero(data_mat);
//類型矩陣存儲(chǔ)每個(gè)樣本的類型標(biāo)志????
res_mat?=?cvCreateMat(nImgNum?1?CV_32FC1);
cvSetZero(res_mat);
IplImage*?src;
IplImage*?trainImg1?=?cvCreateImage(cvSize(imagehigh?imagewight)?8?3);//需要分析的圖片,這里手勢(shì)的圖片尺寸都為32*24,所以上面定義了216,如果要更改圖片大小,可以先用debug查看一下descriptors是多少,然后設(shè)定好再運(yùn)行????
//處理HOG特征??
for?(string::size_type?i?=?0;?i?!=?img_path.size();?i++)
{
src?=?cvLoadImage(img_path[i].c_str()?1);//讀入一張圖片
if?(src?==?NULL)
{
cout?< continue;
}
cout?< cvResize(src?trainImg1);//歸一化圖像尺寸到32*24
Mat?trainImg?=?cvarrToMat(trainImg1?true);//IplImage*?類型轉(zhuǎn)化到Mat類型
/***對(duì)圖片預(yù)處理***/
Mat?element?=?getStructuringElement(MORPH_RECT?Size(2?2));//第一個(gè)參數(shù)MORPH_RECT表示矩形的卷積核,當(dāng)然還可以選擇橢圓形的、交叉型的,第二個(gè)參數(shù)為核的大小
dilate(trainImg?trainImg?element);//膨脹,參數(shù)1:輸入圖片,參數(shù)2:輸出圖片,參數(shù)3:卷積核
medianBlur(trainImg?trainImg?3);//中值濾波,
Mat?element2?=?getStructuringElement(MORPH_RECT?Size(2?2));?//第一個(gè)參數(shù)MORPH_RECT表示矩形的卷積核,當(dāng)然還可以選擇橢圓形的、交叉型的,第二個(gè)參數(shù)為核的大小
morphologyEx(trainImg?trainImg?MORPH_CLOSE?element2);//形態(tài)學(xué)處理閉運(yùn)算,就修改第三個(gè)參數(shù)就可以了。這里演示的是形態(tài)學(xué)梯度處理
HOGDescriptor?*hog?=?new?HOGDescriptor(cvSize(imagehigh?imagewight)?cvSize(16?16)?cvSize(8?8)?cvSize(88)?9);
/***參數(shù)1:圖像大小
????參數(shù)2:塊大小
參數(shù)3:細(xì)胞大小
參數(shù)4:塊重疊
參數(shù)5:細(xì)胞中向量維度***/
vectordescriptors;//存放結(jié)果?????
hog->compute(trainImg?descriptors?Size(1?1)?Size(0?0));?//Hog特征計(jì)算??????
cout?<riptors.size()?< n?=?0;
for?(vector::iterator?iter?=?descriptors.begin();?iter?!=?descriptors.end();?iter++)//HOG特征寫(xiě)入Mat矩陣
{
cvmSet(data_mat?i?n?*iter);//存儲(chǔ)HOG特征?
n++;
}
cvmSet(res_mat?i?0?img_catg[i]);//標(biāo)簽寫(xiě)入Mat矩陣
cout?< }
???
CvSVM?svm;
CvSVMParams?param;//這里是SVM訓(xùn)練相關(guān)參

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-05-12?12:41??svm+hog\
?????目錄???????????0??2018-05-12?12:41??svm+hog\Debug\
?????文件??????154112??2018-05-11?17:38??svm+hog\Debug\svm+hog.exe
?????文件??????926476??2018-05-11?17:38??svm+hog\Debug\svm+hog.ilk
?????文件????11725824??2018-05-11?17:38??svm+hog\Debug\svm+hog.pdb
?????文件??????156992??2018-05-12?12:41??svm+hog\readme.docx
?????目錄???????????0??2018-05-12?12:44??svm+hog\svm+hog\
?????目錄???????????0??2018-05-12?12:41??svm+hog\svm+hog\Debug\
?????文件????????2571??2016-06-01?11:24??svm+hog\svm+hog\Debug\recognition.obj
?????文件????????2672??2018-05-11?17:38??svm+hog\svm+hog\Debug\svm+hog.log
?????目錄???????????0??2018-05-12?12:41??svm+hog\svm+hog\Debug\svm+hog.tlog\
?????文件???????69896??2018-05-11?17:38??svm+hog\svm+hog\Debug\svm+hog.tlog\CL.read.1.tlog
?????文件????????1006??2018-05-11?17:38??svm+hog\svm+hog\Debug\svm+hog.tlog\CL.write.1.tlog
?????文件????????5146??2018-05-11?17:38??svm+hog\svm+hog\Debug\svm+hog.tlog\cl.command.1.tlog
?????文件???????12588??2018-05-11?17:38??svm+hog\svm+hog\Debug\svm+hog.tlog\link.command.1.tlog
?????文件???????12314??2018-05-11?17:38??svm+hog\svm+hog\Debug\svm+hog.tlog\link.read.1.tlog
?????文件?????????958??2018-05-11?17:38??svm+hog\svm+hog\Debug\svm+hog.tlog\link.write.1.tlog
?????文件?????????215??2018-05-11?17:38??svm+hog\svm+hog\Debug\svm+hog.tlog\svm+hog.lastbuildstate
?????文件??????621627??2018-05-11?17:38??svm+hog\svm+hog\Debug\train.obj
?????文件?????2862080??2018-05-11?17:38??svm+hog\svm+hog\Debug\vc120.idb
?????文件?????1552384??2018-05-11?17:38??svm+hog\svm+hog\Debug\vc120.pdb
?????文件????14496219??2018-05-11?17:41??svm+hog\svm+hog\HOG_SVM_LOGO.xml
?????文件??????423687??2018-05-11?17:42??svm+hog\svm+hog\SVM_PREDICT.txt
?????文件????????5281??2018-04-04?23:32??svm+hog\svm+hog\svm+hog.vcxproj
?????文件?????????949??2016-12-21?16:30??svm+hog\svm+hog\svm+hog.vcxproj.filters
?????文件?????????165??2016-06-17?23:58??svm+hog\svm+hog\svm+hog.vcxproj.user
?????文件????????9761??2018-05-12?12:44??svm+hog\svm+hog\train.cpp
?????文件??????????32??2018-05-11?16:45??svm+hog\svm+hog.opensdf
?????文件????38993920??2018-05-11?16:57??svm+hog\svm+hog.sdf
?????文件?????????967??2016-06-01?09:22??svm+hog\svm+hog.sln
?????文件???????26624??2018-04-14?23:06??svm+hog\svm+hog.v12.suo
............此處省略0個(gè)文件信息

評(píng)論

共有 條評(píng)論