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

  • 大小: 4.5MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-02
  • 語言: 其他
  • 標簽: opencv??

資源簡介

這個是我自己寫的Openv中人臉識別類FaceRecognizer,我把進行了封裝,從訓練到顯示,代碼簡單到只有幾行。

資源截圖

代碼片段和文件信息

#include?“FaceRecognition.h“
using?namespace?cv;
using?namespace?std;
using?namespace?face;


CFaceRecognition::CFaceRecognition()
{
}


CFaceRecognition::~CFaceRecognition()
{
}

BOOL?CFaceRecognition::Train(LPCTSTR?path?LPCTSTR?fName)
{
char???buffer[MAX_PATH];
_getcwd(buffer?MAX_PATH);//獲取當前路徑
// printf(“The???current???directory???is:???%s?“?buffer);
string?fn_csv; //讀取文件的絕對路徑
fn_csv?=?buffer;
fn_csv?=?fn_csv?+?path;
//string?fn_csv?=?“C:\\Users\\Administrator\\Desktop\\face\\Train\\FaceTest\\image\\at.txt“;//讀取你的CSV文件路徑.
//string?fn_csv?=?“./image/at.txt“;//讀取你的CSV文件路徑.??相對路徑讀取失敗

vector?images;//?2個容器來存放圖像數據和對應的標簽
vector?labels;
if?(images.size())
{
return?FALSE;
}
read_csv(fn_csv?images?labels);//從csv文件中批量讀取訓練數據
Ptrmodel?=?createEigenFaceRecognizer();
model->train(images?labels);
model->save(fName);//保存路徑
return?TRUE;
}

BOOL?CFaceRecognition::LoadClassifier(LPCTSTR?fName)
{
if?(!m_FaceCascades.load(“haarcascade_frontalface_alt.xml“))
return?FALSE;
m_model?=?createEigenFaceRecognizer();
m_model->load(fName);
return?TRUE;
}

BOOL?CFaceRecognition::FaceDetect(cv::Mat?srcImageint?Label?LPCTSTR?szName?LPCTSTR?wdNmae?int?WaiteKey)
{
std::vector?faces; //存儲人臉的矩形
Mat?edges;
Mat?frame_gray;
if?(srcImage.channels()?==?1)
{
frame_gray?=?srcImage;
}
else
{
cvtColor(srcImage?frame_gray?CV_RGB2GRAY);
}
equalizeHist(frame_gray?frame_gray); //直方圖均衡化
m_FaceCascades.detectMultiScale(frame_gray?faces?1.1?2?0?|?CV_HAAR_SCALE_IMAGE?Size(30?30));//尋找人臉
if?(!faces.size())
{
imshow(wdNmae?srcImage);
waitKey(WaiteKey);
return?FALSE;
}
Mat*?pImage_roi?=?new?Mat[faces.size()]; //定以人臉圖像數組
// string?str;
for?(int?i?=?0;?i? {
pImage_roi[i]?=?frame_gray(faces[i]);?//將所有的臉部保存起來
if?(pImage_roi[i].empty())
{
delete[]pImage_roi;
return?FALSE;
}

if?(Predict(pImage_roi[i])?==?Label) //每張圖片進行識別
{
Scalar?color?=?Scalar(m_rng.uniform(0?255)?m_rng.uniform(0?255)?m_rng.uniform(0?255));//所取的顏色任意值
rectangle(srcImage?Point(faces[i].x?faces[i].y)?Point(faces[i].x?+?faces[i].width?faces[i].y?+?faces[i].height)?color?1?8);//放入緩存
putText(srcImage?szName?Point(faces[i].x?faces[i].y)?FONT_HERSHEY_COMPLEX?1?Scalar(0?0?255));//添加文字
}

}
delete[]pImage_roi;
imshow(wdNmae?srcImage);
waitKey(WaiteKey);
return?TRUE;
}


void?CFaceRecognition::read_csv(const?std::string?&?filename?std::vector&?images?std::vector&?labels?char?separator)
{
std::ifstream?file(filename.c_str()?ifstream::in);//c_str()函數可用可不用,無需返回一個標準C類型的字符串
if?(!file)?{
string?error_message?=?“No?valid?input?file?was?given?please?check?the?given?filename.“;
CV_Error(CV_StsBadArg?error_message);
}
string?line?path?classlabel;
while?(getline(file?line))//從文本文件中讀取一行字符,未指定限定符默認限定符為“/n”
{
stringstream?liness(line);//這里采用stri

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

????..A..H.?????25600??2017-12-02?10:45??face封裝\.vs\Project2\v14\.suo

?????文件???????3548??2017-12-02?10:39??face封裝\Project2\FaceRecognition.cpp

?????文件???????1073??2017-12-02?10:27??face封裝\Project2\FaceRecognition.h

?????文件?????676709??2017-09-12?11:41??face封裝\Project2\haarcascade_frontalface_alt.xml

?????文件????????415??2017-12-02?10:45??face封裝\Project2\main.cpp

?????文件???11928558??2017-12-02?10:40??face封裝\Project2\MyTrain.xml

?????文件???????7192??2017-12-02?09:39??face封裝\Project2\Project2.vcxproj

?????文件???????1172??2017-12-02?09:39??face封裝\Project2\Project2.vcxproj.filters

?????文件???????1306??2017-12-02?08:39??face封裝\Project2.sln

?????目錄??????????0??2017-12-02?08:39??face封裝\.vs\Project2\v14

?????目錄??????????0??2017-12-02?08:39??face封裝\.vs\Project2

????...D.H.?????????0??2017-12-02?08:39??face封裝\.vs

?????目錄??????????0??2017-12-02?11:01??face封裝\Project2

?????目錄??????????0??2017-12-02?11:01??face封裝

-----------?---------??----------?-----??----

?????????????12645573????????????????????14


評論

共有 條評論