• 大小: 12.78MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-12
  • 语言: 其他
  • 标签: Gabor  PCA  SVM的性别  

资源简介

根据已经训练好的性别分类器,对输入的图像进行性别识别

资源截图

代码片段和文件信息

//#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\link-cvtres.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link-cvtres.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.1420-cvtres.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.1420-cvtres.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.1420.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.1420.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.1888-cvtres.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.1888-cvtres.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.1888.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.1888.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.4444-cvtres.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.4444-cvtres.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.4444.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.4444.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.4504-cvtres.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.4504-cvtres.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.4504.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.4504.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.748-cvtres.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.748-cvtres.write.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.748.read.1.tlog

     文件          2  2015-12-26 21:12  SVM\SVM\Debug\link.748.write.1.tlog

............此处省略58个文件信息

评论

共有 条评论