資源簡介
根據已經訓練好的性別分類器,對輸入的圖像進行性別識別
代碼片段和文件信息
//#include?“StdAfx.h“
#include?“GaborFR.h“
GaborFR::GaborFR()
{
isInited?=?false;
}
void?GaborFR::Init(Size?ksize?double?sigmadouble?gamma?int?ktype)
{
gaborRealKernels.clear();
gaborImagKernels.clear();
double?mu[8]={01234567};
double?nu[5]={01234};
int?ij;
for(i=0;i<5;i++)
{
for(j=0;j<8;j++)
{
gaborRealKernels.push_back(getRealGaborKernel(ksizesigmamu[j]*CV_PI/8nu[i]gammaktype));
gaborImagKernels.push_back(getImagGaborKernel(ksizesigmamu[j]*CV_PI/8nu[i]gammaktype));
}
}
isInited?=?true;
}
Mat?GaborFR::getImagGaborKernel(Size?ksize?
???????????????????????????double?sigma?
???double?theta?
???double?nu
???double?gamma?
???int?ktype)
{
double sigma_x =?sigma;
double sigma_y =?sigma/gamma;
int nstds =?3;
double kmax =?CV_PI/2;
double f =?cv::sqrt(2.0);
int?xmin?xmax?ymin?ymax;
double?c?=?cos(theta)?s?=?sin(theta);
if(?ksize.width?>?0?)
{
xmax?=?ksize.width/2;
}
else//這個和matlab中的結果一樣,默認都是19?!
{
xmax?=?cvRound(std::max(fabs(nstds*sigma_x*c)?fabs(nstds*sigma_y*s)));
}
if(?ksize.height?>?0?)
{
ymax?=?ksize.height/2;
}
else
{
ymax?=?cvRound(std::max(fabs(nstds*sigma_x*s)?fabs(nstds*sigma_y*c)));
}
xmin?=?-xmax;
ymin?=?-ymax;
CV_Assert(?ktype?==?CV_32F?||?ktype?==?CV_64F?);
float* pFloat;
double* pDouble;
Mat?kernel(ymax?-?ymin?+?1?xmax?-?xmin?+?1?ktype);?//初始化gabor的尺寸
double?k = kmax/pow(fnu);
double?scaleReal= k*k/sigma_x/sigma_y;
for(?int?y?=?ymin;?y?<=?ymax;?y++?)
{
if(?ktype?==?CV_32F?)
{
pFloat?=?kernel.ptr(ymax-y);
}
else
{
pDouble?=?kernel.ptr(ymax-y);
}
for(?int?x?=?xmin;?x?<=?xmax;?x++?)
{
double?xr?=?x*c?+?y*s;
double?v?=?scaleReal*exp(-(x*x+y*y)*scaleReal/2);
double?temp=sin(k*xr);
v =??temp*v;
if(?ktype?==?CV_32F?)
{
pFloat[xmax?-?x]=?(float)v;
}
else
{
pDouble[xmax?-?x]?=?v;
}
}
}
return?kernel;
}
//sigma一般為2*pi
Mat?GaborFR::getRealGaborKernel(?Size?ksize
????????????????????????????double?sigma
double?theta?
????????????????????????????double?nu
double?gamma?
int?ktype)
{
double sigma_x =?sigma;
double sigma_y =?sigma/gamma;
int nstds =?3;
double kmax =?CV_PI/2;
double f =?cv::sqrt(2.0);
int?xmin?xmax?ymin?ymax;
double?c?=?cos(theta)?s?=?sin(theta);
if(?ksize.width?>?0?)
{
xmax?=?ksize.width/2;
}
else//這個和matlab中的結果一樣,默認都是19?!
{
xmax?=?cvRound(std::max(fabs(nstds*sigma_x*c)?fabs(nstds*sigma_y*s)));
}
if(?ksize.height?>?0?)
ymax?=?ksize.height/2;
else
ymax?=?cvRound(std::max(fabs(nstds*sigma_x*s)?fabs(nstds*sigma_y*c)));
xmin?=?-xmax;
ymin?=?-ymax;
CV_Assert(?ktype?==?CV_32F?||?ktype?==?CV_64F?);
float* pFloat;
double* pDouble;
Mat?kernel(ymax?-?ymin?+?1?xmax?-?xmin?+?1?ktype);
double?k = kmax/pow(fnu);
double?exy = sigma_x*sigma_y/2;
double?scaleReal= k*k/sigma_x/sigma_y;
int ???xy;
for(?y?=?ymin;?y?<=?ymax;?y++?)
{
if(?ktype?==?CV_32F?)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????105984??2015-12-26?21:12??SVM\Debug\SVM.exe
?????文件????3996428??2015-12-26?21:12??SVM\Debug\SVM.ilk
?????文件????1739776??2015-12-26?21:12??SVM\Debug\SVM.pdb
?????文件???57278464??2015-12-26?21:06??SVM\ipch\svm-272c6b36\svm-aca8d3c2.ipch
?????文件???????1222??2015-12-26?21:12??SVM\SVM\Debug\cl.command.1.tlog
?????文件??????26598??2015-12-26?21:12??SVM\SVM\Debug\CL.read.1.tlog
?????文件????????810??2015-12-26?21:12??SVM\SVM\Debug\CL.write.1.tlog
?????文件?????281666??2015-12-25?10:18??SVM\SVM\Debug\Gabor.obj
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
?????文件??????????2??2015-12-26?21:12??SVM\SVM\Debug\li
............此處省略58個文件信息
評論
共有 條評論