资源简介
根据已经训练好的性别分类器,对输入的图像进行性别识别
代码片段和文件信息
//#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个文件信息
相关资源
- 基于Gabor+PCA+SVM的性别识别(1)
- PcapAnalyzer(v6)
- wireshark-20190407 网络抓包及分析工具
- PCANet代码
- AP3030DN瘦AP刷胖AP固件FatAP3X30XN_V200R00
- nRF52840 DK 开发板硬件资料及使用手册
- Statistical Shape Analysis
- 基于winpcap的网络嗅探器
- PCap01电容测试芯片中文技术手册.pdf
- S7comm协议模拟器与协议解析文档以及
- 基于PCA-HOG的人体检测代码-包括训练,
- IPCAM sdk 网络摄像机组件属性和接口(
- 两个基于winpcap开发的网络抓包分析工
- 手写数字识别PCA算法
- PCA+KNN人脸表情识别
- 基于WinPcap的抓包软件设计
- canoco数据分析CCA、PCA、RDA
- VS2012 Qt5 winpcap win64 抓包工具 http协议
- AP6010DN-AGN-FAT-V200R005C10SPCa00.zip
- peak pcan_usb 驱动程序
- PCAN window driver
- Gabor滤波的实现
- FPGA应用开发入门与典型_源代码
- Haar人脸检测+SVM+PCA人脸识别
- PCAP02官方开发板配套软件PCAP01 PCAP04
- simca14-part 1 demo版本
- 机器学习9-PCA原理与实现:数据集与
- iups典型信令数据
- KPCA+KFDA,ORL 库
- 图像融合,像素级遥感图像融合算法
评论
共有 条评论