• 大小: 321KB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: C/C++
  • 标签: Gabor  

资源简介

Gabor特征的C++代码,用于人脸识别,包括Gabor特征的实部和虚部特征提取。

资源截图

代码片段和文件信息

/*
Description: Gabor API usage
Author: Adriaan Tijsseling (AGT)
Copyright:  (c) Copyright 2002-3 Adriaan Tijsseling. All rights reserved.
*/

#include 
#include 
#include 
#include “GaborGlobal.h“ // contains project-wide defines constants and globals
#include “GaborJet.h“
#include “ContrastFilter.h“
#include “LogPolar.h“
#include “PGMImage.h“
#include “Utilities.h“

// use these defines to toggle the use of log-polar and contrastfilter
#define kUseLogPolar 0
#define kUseContrast 1
// set to use color or grayscale
#define kUsingColor 0

// GLOBAL 
bool kSaveFilter = true; // in case of multiple files we save GFs only once
bool kVerbosity = true;  // whether to output any messages or not

// LOCAL GLOBALS
// These are the settings for the Gabor filter jet. These are of course modifiable.
int gx = 32; // -X : horizontal size of filter
int gy = 32; // -Y : vertical size of filter
int sx = 28; // -x : horizontal spacing of filter i.e. overlap is gx - sx pixels
int sy = 28; // -y : vertical spacing of filter
float s = 2.0; // -s : sigma modulator
int a = 8; // -a : number of angles
int f = 1; // -f : number of frequencies
float l = 1; // -l : lower bound of frequency
float u = 2; // -u : upper bound of frequency


// PROTOTYPES
float* ProcessFile( char* int*** int int float* int* );
float*  ProcessChannel( float** int int float* int* int char* );
void Usage( void );


// process command line arguments and filter selected files
int main( int argc char *argv[] )
{
int arg;
char file[256];

cout << “# “;
if ( argc > 1 )
{
// run down each argument
arg = 1;
while( arg < argc )
{
// check if -h is called
if( strcmp( argv[arg] “-h“) == 0 )
{
arg++;
Usage();
}
if( strcmp( argv[arg] “-X“) == 0 )
{
cout << argv[arg] << “ “;
arg++;
if ( argv[arg] == NULL ) Usage();
cout << argv[arg] << “ “;
gx = atoi( argv[arg] );
goto loop;
}
if( strcmp( argv[arg] “-Y“) == 0 )
{
cout << argv[arg] << “ “;
arg++;
if ( argv[arg] == NULL ) Usage();
cout << argv[arg] << “ “;
gy = atoi( argv[arg] );
goto loop;
}
if( strcmp( argv[arg] “-x“) == 0 )
{
cout << argv[arg] << “ “;
arg++;
if ( argv[arg] == NULL ) Usage();
cout << argv[arg] << “ “;
sx = atoi( argv[arg] );
goto loop;
}
if( strcmp( argv[arg] “-y“) == 0 )
{
cout << argv[arg] << “ “;
arg++;
if ( argv[arg] == NULL ) Usage();
cout << argv[arg] << “ “;
sy = atoi( argv[arg] );
goto loop;
}
if( strcmp( argv[arg] “-s“) == 0 )
{
cout << argv[arg] << “ “;
arg++;
if ( argv[arg] == NULL ) Usage();
cout << argv[arg] << “ “;
s = atof( argv[arg] );
goto loop;
}
if( strcmp( argv[arg] “-a“) == 0 )
{
cout << argv[arg] << “ “;
arg++;
if ( argv[arg] == NULL ) Usage();
cout << argv[arg] << “ “;
a = atoi( argv[arg] );
goto loop;
}

评论

共有 条评论

相关资源