renamed filterObject -> CvLSVMFilterObject, position -> CvLSVMFilterPosition etc.
This commit is contained in:
parent
f4e5ef6a2c
commit
bddaa00e03
@ -153,7 +153,7 @@ typedef struct
|
|||||||
unsigned int x;
|
unsigned int x;
|
||||||
unsigned int y;
|
unsigned int y;
|
||||||
unsigned int l;
|
unsigned int l;
|
||||||
} position;
|
} CvLSVMFilterPosition;
|
||||||
|
|
||||||
// DataType: STRUCT filterObject
|
// DataType: STRUCT filterObject
|
||||||
// Description of the filter, which corresponds to the part of the object
|
// Description of the filter, which corresponds to the part of the object
|
||||||
@ -173,14 +173,14 @@ typedef struct
|
|||||||
// size of row in feature vectors
|
// size of row in feature vectors
|
||||||
// (yp = (int) (p / xp); p = xp * yp)
|
// (yp = (int) (p / xp); p = xp * yp)
|
||||||
typedef struct{
|
typedef struct{
|
||||||
position V;
|
CvLSVMFilterPosition V;
|
||||||
float fineFunction[4];
|
float fineFunction[4];
|
||||||
unsigned int sizeX;
|
unsigned int sizeX;
|
||||||
unsigned int sizeY;
|
unsigned int sizeY;
|
||||||
unsigned int p;
|
unsigned int p;
|
||||||
unsigned int xp;
|
unsigned int xp;
|
||||||
float *H;
|
float *H;
|
||||||
} filterObject;
|
} CvLSVMFilterObject;
|
||||||
|
|
||||||
// data type: STRUCT CvLatentSvmDetector
|
// data type: STRUCT CvLatentSvmDetector
|
||||||
// structure contains internal representation of trained Latent SVM detector
|
// structure contains internal representation of trained Latent SVM detector
|
||||||
@ -195,7 +195,7 @@ typedef struct CvLatentSvmDetector
|
|||||||
int num_filters;
|
int num_filters;
|
||||||
int num_components;
|
int num_components;
|
||||||
int* num_part_filters;
|
int* num_part_filters;
|
||||||
filterObject** filters;
|
CvLSVMFilterObject** filters;
|
||||||
float* b;
|
float* b;
|
||||||
float score_threshold;
|
float score_threshold;
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
int getFeaturePyramid(IplImage * image,
|
int getFeaturePyramid(IplImage * image,
|
||||||
const int lambda, const int k,
|
const int lambda, const int k,
|
||||||
const int startX, const int startY,
|
const int startX, const int startY,
|
||||||
const int W, const int H, featurePyramid **maps);
|
const int W, const int H, CvLSVMFeaturePyramid **maps);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Getting feature map for the selected subimage
|
// Getting feature map for the selected subimage
|
||||||
@ -55,7 +55,7 @@ int getFeaturePyramid(IplImage * image,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int getFeatureMaps_dp(const IplImage * image, const int k, featureMap **map);
|
int getFeatureMaps_dp(const IplImage * image, const int k, CvLSVMFeatureMap **map);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -71,7 +71,7 @@ int getFeatureMaps_dp(const IplImage * image, const int k, featureMap **map);
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int normalizationAndTruncationFeatureMaps(featureMap *map, const float alfa);
|
int normalizationAndTruncationFeatureMaps(CvLSVMFeatureMap *map, const float alfa);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Feature map reduction
|
// Feature map reduction
|
||||||
@ -87,7 +87,7 @@ int normalizationAndTruncationFeatureMaps(featureMap *map, const float alfa);
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int PCAFeatureMaps(featureMap *map);
|
int PCAFeatureMaps(CvLSVMFeatureMap *map);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
// search object
|
// search object
|
||||||
@ -172,7 +172,7 @@ int clippingBoxes(int width, int height,
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
#endif
|
#endif
|
||||||
featurePyramid* createFeaturePyramidWithBorder(IplImage *image,
|
CvLSVMFeaturePyramid* createFeaturePyramidWithBorder(IplImage *image,
|
||||||
int maxXBorder, int maxYBorder);
|
int maxXBorder, int maxYBorder);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -204,7 +204,7 @@ featurePyramid* createFeaturePyramidWithBorder(IplImage *image,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int searchObject(const featurePyramid *H, const filterObject **all_F, int n,
|
int searchObject(const CvLSVMFeaturePyramid *H, const CvLSVMFilterObject **all_F, int n,
|
||||||
float b,
|
float b,
|
||||||
int maxXBorder,
|
int maxXBorder,
|
||||||
int maxYBorder,
|
int maxYBorder,
|
||||||
@ -242,8 +242,8 @@ int searchObject(const featurePyramid *H, const filterObject **all_F, int n,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int searchObjectThreshold(const featurePyramid *H,
|
int searchObjectThreshold(const CvLSVMFeaturePyramid *H,
|
||||||
const filterObject **all_F, int n,
|
const CvLSVMFilterObject **all_F, int n,
|
||||||
float b,
|
float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float scoreThreshold,
|
float scoreThreshold,
|
||||||
@ -278,8 +278,8 @@ int searchObjectThreshold(const featurePyramid *H,
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
#endif
|
#endif
|
||||||
int searchObjectThresholdSomeComponents(const featurePyramid *H,
|
int searchObjectThresholdSomeComponents(const CvLSVMFeaturePyramid *H,
|
||||||
const filterObject **filters,
|
const CvLSVMFilterObject **filters,
|
||||||
int kComponents, const int *kPartFilters,
|
int kComponents, const int *kPartFilters,
|
||||||
const float *b, float scoreThreshold,
|
const float *b, float scoreThreshold,
|
||||||
CvPoint **points, CvPoint **oppPoints,
|
CvPoint **points, CvPoint **oppPoints,
|
||||||
@ -336,7 +336,7 @@ int getOppositePoint(CvPoint point,
|
|||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int showRootFilterBoxes(IplImage *image,
|
int showRootFilterBoxes(IplImage *image,
|
||||||
const filterObject *filter,
|
const CvLSVMFilterObject *filter,
|
||||||
CvPoint *points, int *levels, int kPoints,
|
CvPoint *points, int *levels, int kPoints,
|
||||||
CvScalar color, int thickness,
|
CvScalar color, int thickness,
|
||||||
int line_type, int shift);
|
int line_type, int shift);
|
||||||
@ -367,7 +367,7 @@ int showRootFilterBoxes(IplImage *image,
|
|||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int showPartFilterBoxes(IplImage *image,
|
int showPartFilterBoxes(IplImage *image,
|
||||||
const filterObject **filters,
|
const CvLSVMFilterObject **filters,
|
||||||
int n, CvPoint **partsDisplacement,
|
int n, CvPoint **partsDisplacement,
|
||||||
int *levels, int kPoints,
|
int *levels, int kPoints,
|
||||||
CvScalar color, int thickness,
|
CvScalar color, int thickness,
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int convolution(const filterObject *Fi, const featureMap *map, float *f);
|
int convolution(const CvLSVMFilterObject *Fi, const CvLSVMFeatureMap *map, float *f);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Computation multiplication of FFT images
|
// Computation multiplication of FFT images
|
||||||
@ -97,9 +97,9 @@ int addNullableBars(float *rot2PIFilter, int dimX, int dimY,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int getFFTImageFilterObject(const filterObject *filter,
|
int getFFTImageFilterObject(const CvLSVMFilterObject *filter,
|
||||||
int mapDimX, int mapDimY,
|
int mapDimX, int mapDimY,
|
||||||
fftImage **image);
|
CvLSVMFftImage **image);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Computation FFT image for feature map
|
// Computation FFT image for feature map
|
||||||
@ -111,7 +111,7 @@ int getFFTImageFilterObject(const filterObject *filter,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int getFFTImageFeatureMap(const featureMap *map, fftImage **image);
|
int getFFTImageFeatureMap(const CvLSVMFeatureMap *map, CvLSVMFftImage **image);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Function for convolution computation using FFT
|
// Function for convolution computation using FFT
|
||||||
@ -128,7 +128,7 @@ int getFFTImageFeatureMap(const featureMap *map, fftImage **image);
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int convFFTConv2d(const fftImage *featMapImage, const fftImage *filterImage,
|
int convFFTConv2d(const CvLSVMFftImage *featMapImage, const CvLSVMFftImage *filterImage,
|
||||||
int filterDimX, int filterDimY, float **conv);
|
int filterDimX, int filterDimY, float **conv);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -149,7 +149,7 @@ int convFFTConv2d(const fftImage *featMapImage, const fftImage *filterImage,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int filterDispositionLevel(const filterObject *Fi, const featureMap *pyramid,
|
int filterDispositionLevel(const CvLSVMFilterObject *Fi, const CvLSVMFeatureMap *pyramid,
|
||||||
float **scoreFi,
|
float **scoreFi,
|
||||||
int **pointsX, int **pointsY);
|
int **pointsX, int **pointsY);
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ int filterDispositionLevel(const filterObject *Fi, const featureMap *pyramid,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int filterDispositionLevelFFT(const filterObject *Fi, const fftImage *featMapImage,
|
int filterDispositionLevelFFT(const CvLSVMFilterObject *Fi, const CvLSVMFftImage *featMapImage,
|
||||||
float **scoreFi,
|
float **scoreFi,
|
||||||
int **pointsX, int **pointsY);
|
int **pointsX, int **pointsY);
|
||||||
|
|
||||||
@ -204,7 +204,7 @@ int computeBorderSize(int maxXBorder, int maxYBorder, int *bx, int *by);
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int addNullableBorder(featureMap *map, int bx, int by);
|
int addNullableBorder(CvLSVMFeatureMap *map, int bx, int by);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Computation the maximum of the score function at the level
|
// Computation the maximum of the score function at the level
|
||||||
@ -234,8 +234,8 @@ int addNullableBorder(featureMap *map, int bx, int by);
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int maxFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
int maxFunctionalScoreFixedLevel(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const CvLSVMFeaturePyramid *H,
|
||||||
int level, float b,
|
int level, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float *score, CvPoint **points, int *kPoints,
|
float *score, CvPoint **points, int *kPoints,
|
||||||
@ -271,8 +271,8 @@ int maxFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int thresholdFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
int thresholdFunctionalScoreFixedLevel(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const CvLSVMFeaturePyramid *H,
|
||||||
int level, float b,
|
int level, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float scoreThreshold,
|
float scoreThreshold,
|
||||||
@ -306,8 +306,8 @@ int thresholdFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int maxFunctionalScore(const filterObject **all_F, int n,
|
int maxFunctionalScore(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H, float b,
|
const CvLSVMFeaturePyramid *H, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float *score,
|
float *score,
|
||||||
CvPoint **points, int **levels, int *kPoints,
|
CvPoint **points, int **levels, int *kPoints,
|
||||||
@ -343,8 +343,8 @@ int maxFunctionalScore(const filterObject **all_F, int n,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int thresholdFunctionalScore(const filterObject **all_F, int n,
|
int thresholdFunctionalScore(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const CvLSVMFeaturePyramid *H,
|
||||||
float b,
|
float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float scoreThreshold,
|
float scoreThreshold,
|
||||||
@ -389,7 +389,7 @@ int nonMaximumSuppression(int numBoxes, const CvPoint *points,
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
#endif
|
#endif
|
||||||
int getMaxFilterDims(const filterObject **filters, int kComponents,
|
int getMaxFilterDims(const CvLSVMFilterObject **filters, int kComponents,
|
||||||
const int *kPartFilters,
|
const int *kPartFilters,
|
||||||
unsigned int *maxXBorder, unsigned int *maxYBorder);
|
unsigned int *maxXBorder, unsigned int *maxYBorder);
|
||||||
//}
|
//}
|
||||||
|
@ -12,24 +12,24 @@
|
|||||||
// with all fields including arrays
|
// with all fields including arrays
|
||||||
// Error status is return value
|
// Error status is return value
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
int allocFilterObject(filterObject **obj, const int sizeX, const int sizeY,
|
int allocFilterObject(CvLSVMFilterObject **obj, const int sizeX, const int sizeY,
|
||||||
const int p, const int xp);
|
const int p, const int xp);
|
||||||
int freeFilterObject (filterObject **obj);
|
int freeFilterObject (CvLSVMFilterObject **obj);
|
||||||
|
|
||||||
int allocFeatureMapObject(featureMap **obj, const int sizeX, const int sizeY,
|
int allocFeatureMapObject(CvLSVMFeatureMap **obj, const int sizeX, const int sizeY,
|
||||||
const int p, const int xp);
|
const int p, const int xp);
|
||||||
int freeFeatureMapObject (featureMap **obj);
|
int freeFeatureMapObject (CvLSVMFeatureMap **obj);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
#endif
|
#endif
|
||||||
int allocFeaturePyramidObject(featurePyramid **obj,
|
int allocFeaturePyramidObject(CvLSVMFeaturePyramid **obj,
|
||||||
const int lambda, const int countLevel);
|
const int lambda, const int countLevel);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
#endif
|
#endif
|
||||||
int freeFeaturePyramidObject (featurePyramid **obj);
|
int freeFeaturePyramidObject (CvLSVMFeaturePyramid **obj);
|
||||||
int allocFFTImage(fftImage **image, int p, int dimX, int dimY);
|
int allocFFTImage(CvLSVMFftImage **image, int p, int dimX, int dimY);
|
||||||
int freeFFTImage(fftImage **image);
|
int freeFFTImage(CvLSVMFftImage **image);
|
||||||
#endif
|
#endif
|
@ -1,17 +1,19 @@
|
|||||||
#ifndef SVM_TYPE
|
#ifndef SVM_TYPE
|
||||||
#define SVM_TYPE
|
#define SVM_TYPE
|
||||||
|
|
||||||
|
#include "float.h"
|
||||||
|
|
||||||
//#define FFT_CONV
|
//#define FFT_CONV
|
||||||
|
|
||||||
// Çíà÷åíèå ÷èñëà PI
|
// Çíà÷åíèå ÷èñëà PI
|
||||||
#define PI 3.1415926535897932384626433832795
|
#define PI CV_PI
|
||||||
|
|
||||||
// Òî÷íîñòü ñðàâíåíèÿ ïàðû âåùåñòâåííûõ ÷èñåë
|
// Òî÷íîñòü ñðàâíåíèÿ ïàðû âåùåñòâåííûõ ÷èñåë
|
||||||
#define EPS 0.000001
|
#define EPS 0.000001
|
||||||
|
|
||||||
// Ìèíèìàëüíîå è ìàêñèìàëüíîå çíà÷åíèå äëÿ âåùåñòâåííîãî òèïà äàííûõ
|
// Ìèíèìàëüíîå è ìàêñèìàëüíîå çíà÷åíèå äëÿ âåùåñòâåííîãî òèïà äàííûõ
|
||||||
#define F_MAX 3.402823466e+38
|
#define F_MAX FLT_MAX
|
||||||
#define F_MIN -3.402823465e+38
|
#define F_MIN -FLT_MAX
|
||||||
|
|
||||||
// The number of elements in bin
|
// The number of elements in bin
|
||||||
// The number of sectors in gradient histogram building
|
// The number of sectors in gradient histogram building
|
||||||
@ -46,7 +48,7 @@ typedef struct{
|
|||||||
int p;
|
int p;
|
||||||
int xp;
|
int xp;
|
||||||
float *Map;
|
float *Map;
|
||||||
} featureMap;
|
} CvLSVMFeatureMap;
|
||||||
|
|
||||||
// DataType: STRUCT featurePyramid
|
// DataType: STRUCT featurePyramid
|
||||||
//
|
//
|
||||||
@ -56,8 +58,8 @@ typedef struct{
|
|||||||
typedef struct{
|
typedef struct{
|
||||||
int countLevel;
|
int countLevel;
|
||||||
int lambda;
|
int lambda;
|
||||||
featureMap **pyramid;
|
CvLSVMFeatureMap **pyramid;
|
||||||
} featurePyramid;
|
} CvLSVMFeaturePyramid;
|
||||||
|
|
||||||
// DataType: STRUCT filterDisposition
|
// DataType: STRUCT filterDisposition
|
||||||
// The structure stores preliminary results in optimization process
|
// The structure stores preliminary results in optimization process
|
||||||
@ -70,7 +72,7 @@ typedef struct{
|
|||||||
float *score;
|
float *score;
|
||||||
int *x;
|
int *x;
|
||||||
int *y;
|
int *y;
|
||||||
} filterDisposition;
|
} CvLSVMFilterDisposition;
|
||||||
|
|
||||||
// DataType: STRUCT fftImage
|
// DataType: STRUCT fftImage
|
||||||
// The structure stores FFT image
|
// The structure stores FFT image
|
||||||
@ -84,6 +86,6 @@ typedef struct{
|
|||||||
unsigned int dimX;
|
unsigned int dimX;
|
||||||
unsigned int dimY;
|
unsigned int dimY;
|
||||||
float **channels;
|
float **channels;
|
||||||
} fftImage;
|
} CvLSVMFftImage;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -46,7 +46,8 @@
|
|||||||
#define EBTAG (STEP_END + BTAG)
|
#define EBTAG (STEP_END + BTAG)
|
||||||
|
|
||||||
//extern "C" {
|
//extern "C" {
|
||||||
int LSVMparser(const char * filename, filterObject *** model, int *last, int *max, int **comp, float **b, int *count, float * score);
|
int LSVMparser(const char * filename, CvLSVMFilterObject *** model, int *last, int *max,
|
||||||
|
int **comp, float **b, int *count, float * score);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
#endif
|
#endif
|
||||||
@ -54,7 +55,7 @@ extern "C"
|
|||||||
|
|
||||||
const char *modelPath,
|
const char *modelPath,
|
||||||
|
|
||||||
filterObject ***filters,
|
CvLSVMFilterObject ***filters,
|
||||||
int *kFilters,
|
int *kFilters,
|
||||||
int *kComponents,
|
int *kComponents,
|
||||||
int **kPartFilters,
|
int **kPartFilters,
|
||||||
|
@ -29,7 +29,7 @@ int sign(float r){
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int getFeatureMaps_dp(const IplImage * image,const int k, featureMap **map)
|
int getFeatureMaps_dp(const IplImage * image,const int k, CvLSVMFeatureMap **map)
|
||||||
{
|
{
|
||||||
int sizeX, sizeY;
|
int sizeX, sizeY;
|
||||||
int p, px, strsz;
|
int p, px, strsz;
|
||||||
@ -226,7 +226,7 @@ int getFeatureMaps_dp(const IplImage * image,const int k, featureMap **map)
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int normalizationAndTruncationFeatureMaps(featureMap *map, const float alfa)
|
int normalizationAndTruncationFeatureMaps(CvLSVMFeatureMap *map, const float alfa)
|
||||||
{
|
{
|
||||||
int i,j, ii;
|
int i,j, ii;
|
||||||
int sizeX, sizeY, p, pos, pp, xp, pos1, pos2;
|
int sizeX, sizeY, p, pos, pp, xp, pos1, pos2;
|
||||||
@ -351,7 +351,7 @@ int normalizationAndTruncationFeatureMaps(featureMap *map, const float alfa)
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int PCAFeatureMaps(featureMap *map)
|
int PCAFeatureMaps(CvLSVMFeatureMap *map)
|
||||||
{
|
{
|
||||||
int i,j, ii, jj, k;
|
int i,j, ii, jj, k;
|
||||||
int sizeX, sizeY, p, pp, xp, yp, pos1, pos2;
|
int sizeX, sizeY, p, pp, xp, yp, pos1, pos2;
|
||||||
@ -447,7 +447,7 @@ int PCAFeatureMaps(featureMap *map)
|
|||||||
int getFeaturePyramid(IplImage * image,
|
int getFeaturePyramid(IplImage * image,
|
||||||
const int lambda, const int k,
|
const int lambda, const int k,
|
||||||
const int startX, const int startY,
|
const int startX, const int startY,
|
||||||
const int W, const int H, featurePyramid **maps)
|
const int W, const int H, CvLSVMFeaturePyramid **maps)
|
||||||
{
|
{
|
||||||
IplImage *img2, *imgTmp, *imgResize;
|
IplImage *img2, *imgTmp, *imgResize;
|
||||||
float step, tmp;
|
float step, tmp;
|
||||||
@ -455,7 +455,7 @@ int getFeaturePyramid(IplImage * image,
|
|||||||
int maxcall;
|
int maxcall;
|
||||||
int i;
|
int i;
|
||||||
int err;
|
int err;
|
||||||
featureMap *map;
|
CvLSVMFeatureMap *map;
|
||||||
|
|
||||||
//geting subimage
|
//geting subimage
|
||||||
cvSetImageROI(image, cvRect(startX, startY, W, H));
|
cvSetImageROI(image, cvRect(startX, startY, W, H));
|
||||||
@ -534,7 +534,7 @@ int getFeaturePyramid(IplImage * image,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int addBordersToFeatureMaps(featureMap *map, const int bX, const int bY){
|
int addBordersToFeatureMaps(CvLSVMFeatureMap *map, const int bX, const int bY){
|
||||||
int i,j, jj;
|
int i,j, jj;
|
||||||
int sizeX, sizeY, p, pos1, pos2;
|
int sizeX, sizeY, p, pos1, pos2;
|
||||||
float * new_data;
|
float * new_data;
|
||||||
|
@ -118,13 +118,13 @@ int clippingBoxes(int width, int height,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Feature pyramid with nullable border
|
// Feature pyramid with nullable border
|
||||||
*/
|
*/
|
||||||
featurePyramid* createFeaturePyramidWithBorder(IplImage *image,
|
CvLSVMFeaturePyramid* createFeaturePyramidWithBorder(IplImage *image,
|
||||||
int maxXBorder, int maxYBorder)
|
int maxXBorder, int maxYBorder)
|
||||||
{
|
{
|
||||||
int opResult;
|
int opResult;
|
||||||
int bx, by;
|
int bx, by;
|
||||||
int level;
|
int level;
|
||||||
featurePyramid *H;
|
CvLSVMFeaturePyramid *H;
|
||||||
|
|
||||||
// Obtaining feature pyramid
|
// Obtaining feature pyramid
|
||||||
opResult = getFeaturePyramid(image, LAMBDA, SIDE_LENGTH, 0, 0,
|
opResult = getFeaturePyramid(image, LAMBDA, SIDE_LENGTH, 0, 0,
|
||||||
@ -175,7 +175,7 @@ featurePyramid* createFeaturePyramidWithBorder(IplImage *image,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int searchObject(const featurePyramid *H, const filterObject **all_F,
|
int searchObject(const CvLSVMFeaturePyramid *H, const CvLSVMFilterObject **all_F,
|
||||||
int n, float b,
|
int n, float b,
|
||||||
int maxXBorder,
|
int maxXBorder,
|
||||||
int maxYBorder,
|
int maxYBorder,
|
||||||
@ -265,8 +265,8 @@ int estimateBoxes(CvPoint *points, int *levels, int kPoints,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int searchObjectThreshold(const featurePyramid *H,
|
int searchObjectThreshold(const CvLSVMFeaturePyramid *H,
|
||||||
const filterObject **all_F, int n,
|
const CvLSVMFilterObject **all_F, int n,
|
||||||
float b,
|
float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float scoreThreshold,
|
float scoreThreshold,
|
||||||
@ -356,7 +356,7 @@ int getOppositePoint(CvPoint point,
|
|||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int showRootFilterBoxes(IplImage *image,
|
int showRootFilterBoxes(IplImage *image,
|
||||||
const filterObject *filter,
|
const CvLSVMFilterObject *filter,
|
||||||
CvPoint *points, int *levels, int kPoints,
|
CvPoint *points, int *levels, int kPoints,
|
||||||
CvScalar color, int thickness,
|
CvScalar color, int thickness,
|
||||||
int line_type, int shift)
|
int line_type, int shift)
|
||||||
@ -404,7 +404,7 @@ int showRootFilterBoxes(IplImage *image,
|
|||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int showPartFilterBoxes(IplImage *image,
|
int showPartFilterBoxes(IplImage *image,
|
||||||
const filterObject **filters,
|
const CvLSVMFilterObject **filters,
|
||||||
int n, CvPoint **partsDisplacement,
|
int n, CvPoint **partsDisplacement,
|
||||||
int *levels, int kPoints,
|
int *levels, int kPoints,
|
||||||
CvScalar color, int thickness,
|
CvScalar color, int thickness,
|
||||||
@ -484,7 +484,7 @@ int showBoxes(IplImage *img,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int getMaxFilterDims(const filterObject **filters, int kComponents,
|
int getMaxFilterDims(const CvLSVMFilterObject **filters, int kComponents,
|
||||||
const int *kPartFilters,
|
const int *kPartFilters,
|
||||||
unsigned int *maxXBorder, unsigned int *maxYBorder)
|
unsigned int *maxXBorder, unsigned int *maxYBorder)
|
||||||
{
|
{
|
||||||
@ -532,8 +532,8 @@ int getMaxFilterDims(const filterObject **filters, int kComponents,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int searchObjectThresholdSomeComponents(const featurePyramid *H,
|
int searchObjectThresholdSomeComponents(const CvLSVMFeaturePyramid *H,
|
||||||
const filterObject **filters,
|
const CvLSVMFilterObject **filters,
|
||||||
int kComponents, const int *kPartFilters,
|
int kComponents, const int *kPartFilters,
|
||||||
const float *b, float scoreThreshold,
|
const float *b, float scoreThreshold,
|
||||||
CvPoint **points, CvPoint **oppPoints,
|
CvPoint **points, CvPoint **oppPoints,
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
CvLatentSvmDetector* cvLoadLatentSvmDetector(const char* filename)
|
CvLatentSvmDetector* cvLoadLatentSvmDetector(const char* filename)
|
||||||
{
|
{
|
||||||
CvLatentSvmDetector* detector = 0;
|
CvLatentSvmDetector* detector = 0;
|
||||||
filterObject** filters = 0;
|
CvLSVMFilterObject** filters = 0;
|
||||||
int kFilters = 0;
|
int kFilters = 0;
|
||||||
int kComponents = 0;
|
int kComponents = 0;
|
||||||
int* kPartFilters = 0;
|
int* kPartFilters = 0;
|
||||||
@ -84,7 +84,7 @@ CvSeq* cvLatentSvmDetectObjects(IplImage* image,
|
|||||||
CvMemStorage* storage,
|
CvMemStorage* storage,
|
||||||
float overlap_threshold)
|
float overlap_threshold)
|
||||||
{
|
{
|
||||||
featurePyramid *H = 0;
|
CvLSVMFeaturePyramid *H = 0;
|
||||||
CvPoint *points = 0, *oppPoints = 0;
|
CvPoint *points = 0, *oppPoints = 0;
|
||||||
int kPoints = 0;
|
int kPoints = 0;
|
||||||
float *score = 0;
|
float *score = 0;
|
||||||
@ -97,11 +97,11 @@ CvSeq* cvLatentSvmDetectObjects(IplImage* image,
|
|||||||
|
|
||||||
cvConvertImage(image, image, CV_CVTIMG_SWAP_RB);
|
cvConvertImage(image, image, CV_CVTIMG_SWAP_RB);
|
||||||
// Getting maximum filter dimensions
|
// Getting maximum filter dimensions
|
||||||
getMaxFilterDims((const filterObject**)(detector->filters), detector->num_components, detector->num_part_filters, &maxXBorder, &maxYBorder);
|
getMaxFilterDims((const CvLSVMFilterObject**)(detector->filters), detector->num_components, detector->num_part_filters, &maxXBorder, &maxYBorder);
|
||||||
// Create feature pyramid with nullable border
|
// Create feature pyramid with nullable border
|
||||||
H = createFeaturePyramidWithBorder(image, maxXBorder, maxYBorder);
|
H = createFeaturePyramidWithBorder(image, maxXBorder, maxYBorder);
|
||||||
// Search object
|
// Search object
|
||||||
searchObjectThresholdSomeComponents(H, (const filterObject**)(detector->filters), detector->num_components,
|
searchObjectThresholdSomeComponents(H, (const CvLSVMFilterObject**)(detector->filters), detector->num_components,
|
||||||
detector->num_part_filters, detector->b, detector->score_threshold,
|
detector->num_part_filters, detector->b, detector->score_threshold,
|
||||||
&points, &oppPoints, &score, &kPoints);
|
&points, &oppPoints, &score, &kPoints);
|
||||||
// Clipping boxes
|
// Clipping boxes
|
||||||
|
@ -163,23 +163,23 @@ int getTeg(char *str){
|
|||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
void addFilter(filterObject *** model, int *last, int *max){
|
void addFilter(CvLSVMFilterObject *** model, int *last, int *max){
|
||||||
filterObject ** nmodel;
|
CvLSVMFilterObject ** nmodel;
|
||||||
int i;
|
int i;
|
||||||
(*last) ++;
|
(*last) ++;
|
||||||
if((*last) >= (*max)){
|
if((*last) >= (*max)){
|
||||||
(*max) += 10;
|
(*max) += 10;
|
||||||
nmodel = (filterObject **)malloc(sizeof(filterObject *) * (*max));
|
nmodel = (CvLSVMFilterObject **)malloc(sizeof(CvLSVMFilterObject *) * (*max));
|
||||||
for(i = 0; i < *last; i++){
|
for(i = 0; i < *last; i++){
|
||||||
nmodel[i] = (* model)[i];
|
nmodel[i] = (* model)[i];
|
||||||
}
|
}
|
||||||
free(* model);
|
free(* model);
|
||||||
(*model) = nmodel;
|
(*model) = nmodel;
|
||||||
}
|
}
|
||||||
(*model) [(*last)] = (filterObject *)malloc(sizeof(filterObject));
|
(*model) [(*last)] = (CvLSVMFilterObject *)malloc(sizeof(CvLSVMFilterObject));
|
||||||
}
|
}
|
||||||
|
|
||||||
void parserRFilter (FILE * xmlf, int p, filterObject * model, float *b){
|
void parserRFilter (FILE * xmlf, int p, CvLSVMFilterObject * model, float *b){
|
||||||
int st = 0;
|
int st = 0;
|
||||||
int sizeX, sizeY;
|
int sizeX, sizeY;
|
||||||
int tag;
|
int tag;
|
||||||
@ -278,7 +278,7 @@ void parserRFilter (FILE * xmlf, int p, filterObject * model, float *b){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void parserV (FILE * xmlf, int p, filterObject * model){
|
void parserV (FILE * xmlf, int p, CvLSVMFilterObject * model){
|
||||||
int st = 0;
|
int st = 0;
|
||||||
int tag;
|
int tag;
|
||||||
int tagVal;
|
int tagVal;
|
||||||
@ -341,7 +341,7 @@ void parserV (FILE * xmlf, int p, filterObject * model){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void parserD (FILE * xmlf, int p, filterObject * model){
|
void parserD (FILE * xmlf, int p, CvLSVMFilterObject * model){
|
||||||
int st = 0;
|
int st = 0;
|
||||||
int tag;
|
int tag;
|
||||||
int tagVal;
|
int tagVal;
|
||||||
@ -430,7 +430,7 @@ void parserD (FILE * xmlf, int p, filterObject * model){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void parserPFilter (FILE * xmlf, int p, int N_path, filterObject * model){
|
void parserPFilter (FILE * xmlf, int p, int N_path, CvLSVMFilterObject * model){
|
||||||
int st = 0;
|
int st = 0;
|
||||||
int sizeX, sizeY;
|
int sizeX, sizeY;
|
||||||
int tag;
|
int tag;
|
||||||
@ -524,7 +524,7 @@ void parserPFilter (FILE * xmlf, int p, int N_path, filterObject * model){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void parserPFilterS (FILE * xmlf, int p, filterObject *** model, int *last, int *max){
|
void parserPFilterS (FILE * xmlf, int p, CvLSVMFilterObject *** model, int *last, int *max){
|
||||||
int st = 0;
|
int st = 0;
|
||||||
int N_path = 0;
|
int N_path = 0;
|
||||||
int tag;
|
int tag;
|
||||||
@ -573,7 +573,7 @@ void parserPFilterS (FILE * xmlf, int p, filterObject *** model, int *last, int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void parserComp (FILE * xmlf, int p, int *N_comp, filterObject *** model, float *b, int *last, int *max){
|
void parserComp (FILE * xmlf, int p, int *N_comp, CvLSVMFilterObject *** model, float *b, int *last, int *max){
|
||||||
int st = 0;
|
int st = 0;
|
||||||
int tag;
|
int tag;
|
||||||
int tagVal;
|
int tagVal;
|
||||||
@ -623,7 +623,7 @@ void parserComp (FILE * xmlf, int p, int *N_comp, filterObject *** model, float
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void parserModel(FILE * xmlf, filterObject *** model, int *last, int *max, int **comp, float **b, int *count, float * score){
|
void parserModel(FILE * xmlf, CvLSVMFilterObject *** model, int *last, int *max, int **comp, float **b, int *count, float * score){
|
||||||
int p = 0;
|
int p = 0;
|
||||||
int N_comp = 0;
|
int N_comp = 0;
|
||||||
int * cmp;
|
int * cmp;
|
||||||
@ -720,7 +720,7 @@ void parserModel(FILE * xmlf, filterObject *** model, int *last, int *max, int *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int LSVMparser(const char * filename, filterObject *** model, int *last, int *max, int **comp, float **b, int *count, float * score){
|
int LSVMparser(const char * filename, CvLSVMFilterObject *** model, int *last, int *max, int **comp, float **b, int *count, float * score){
|
||||||
int st = 0;
|
int st = 0;
|
||||||
int tag;
|
int tag;
|
||||||
char ch;
|
char ch;
|
||||||
@ -731,7 +731,7 @@ int LSVMparser(const char * filename, filterObject *** model, int *last, int *ma
|
|||||||
|
|
||||||
(*max) = 10;
|
(*max) = 10;
|
||||||
(*last) = -1;
|
(*last) = -1;
|
||||||
(*model) = (filterObject ** )malloc((sizeof(filterObject * )) * (*max));
|
(*model) = (CvLSVMFilterObject ** )malloc((sizeof(CvLSVMFilterObject * )) * (*max));
|
||||||
|
|
||||||
//printf("parse : %s\n", filename);
|
//printf("parse : %s\n", filename);
|
||||||
|
|
||||||
@ -773,8 +773,7 @@ int LSVMparser(const char * filename, filterObject *** model, int *last, int *ma
|
|||||||
|
|
||||||
int loadModel(
|
int loadModel(
|
||||||
const char *modelPath,
|
const char *modelPath,
|
||||||
|
CvLSVMFilterObject ***filters,
|
||||||
filterObject ***filters,
|
|
||||||
int *kFilters,
|
int *kFilters,
|
||||||
int *kComponents,
|
int *kComponents,
|
||||||
int **kPartFilters,
|
int **kPartFilters,
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int convolution(const filterObject *Fi, const featureMap *map, float *f)
|
int convolution(const CvLSVMFilterObject *Fi, const CvLSVMFeatureMap *map, float *f)
|
||||||
{
|
{
|
||||||
int n1, m1, n2, m2, p, size, diff1, diff2;
|
int n1, m1, n2, m2, p, size, diff1, diff2;
|
||||||
int i1, i2, j1, j2, k;
|
int i1, i2, j1, j2, k;
|
||||||
@ -161,7 +161,7 @@ int addNullableBars(float *rot2PIFilter, int dimX, int dimY,
|
|||||||
// Computation FFT image for filter object
|
// Computation FFT image for filter object
|
||||||
//
|
//
|
||||||
// API
|
// API
|
||||||
// int getFFTImageFilterObject(const filterObject *filter,
|
// int getFFTImageFilterObject(const CvLSVMFilterObject *filter,
|
||||||
int mapDimX, int mapDimY,
|
int mapDimX, int mapDimY,
|
||||||
fftImage **image);
|
fftImage **image);
|
||||||
// INPUT
|
// INPUT
|
||||||
@ -172,9 +172,9 @@ int addNullableBars(float *rot2PIFilter, int dimX, int dimY,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int getFFTImageFilterObject(const filterObject *filter,
|
int getFFTImageFilterObject(const CvLSVMFilterObject *filter,
|
||||||
int mapDimX, int mapDimY,
|
int mapDimX, int mapDimY,
|
||||||
fftImage **image)
|
CvLSVMFftImage **image)
|
||||||
{
|
{
|
||||||
unsigned int i, mapSize, filterSize;
|
unsigned int i, mapSize, filterSize;
|
||||||
int res;
|
int res;
|
||||||
@ -211,7 +211,7 @@ int getFFTImageFilterObject(const filterObject *filter,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int getFFTImageFeatureMap(const featureMap *map, fftImage **image)
|
int getFFTImageFeatureMap(const CvLSVMFeatureMap *map, CvLSVMFftImage **image)
|
||||||
{
|
{
|
||||||
int i, j, size;
|
int i, j, size;
|
||||||
float *buf;
|
float *buf;
|
||||||
@ -246,7 +246,7 @@ int getFFTImageFeatureMap(const featureMap *map, fftImage **image)
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int convFFTConv2d(const fftImage *featMapImage, const fftImage *filterImage,
|
int convFFTConv2d(const CvLSVMFftImage *featMapImage, const CvLSVMFftImage *filterImage,
|
||||||
int filterDimX, int filterDimY, float **conv)
|
int filterDimX, int filterDimY, float **conv)
|
||||||
{
|
{
|
||||||
int i, j, size, diffX, diffY, index;
|
int i, j, size, diffX, diffY, index;
|
||||||
@ -289,7 +289,7 @@ int convFFTConv2d(const fftImage *featMapImage, const fftImage *filterImage,
|
|||||||
// Computation objective function D according the original paper
|
// Computation objective function D according the original paper
|
||||||
//
|
//
|
||||||
// API
|
// API
|
||||||
// int filterDispositionLevel(const filterObject *Fi, const featurePyramid *H,
|
// int filterDispositionLevel(const CvLSVMFilterObject *Fi, const featurePyramid *H,
|
||||||
int level, float **scoreFi,
|
int level, float **scoreFi,
|
||||||
int **pointsX, int **pointsY);
|
int **pointsX, int **pointsY);
|
||||||
// INPUT
|
// INPUT
|
||||||
@ -304,7 +304,7 @@ int convFFTConv2d(const fftImage *featMapImage, const fftImage *filterImage,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int filterDispositionLevel(const filterObject *Fi, const featureMap *pyramid,
|
int filterDispositionLevel(const CvLSVMFilterObject *Fi, const CvLSVMFeatureMap *pyramid,
|
||||||
float **scoreFi,
|
float **scoreFi,
|
||||||
int **pointsX, int **pointsY)
|
int **pointsX, int **pointsY)
|
||||||
{
|
{
|
||||||
@ -375,7 +375,7 @@ int filterDispositionLevel(const filterObject *Fi, const featureMap *pyramid,
|
|||||||
// Computation objective function D according the original paper using FFT
|
// Computation objective function D according the original paper using FFT
|
||||||
//
|
//
|
||||||
// API
|
// API
|
||||||
// int filterDispositionLevelFFT(const filterObject *Fi, const fftImage *featMapImage,
|
// int filterDispositionLevelFFT(const CvLSVMFilterObject *Fi, const fftImage *featMapImage,
|
||||||
float **scoreFi,
|
float **scoreFi,
|
||||||
int **pointsX, int **pointsY);
|
int **pointsX, int **pointsY);
|
||||||
// INPUT
|
// INPUT
|
||||||
@ -389,7 +389,7 @@ int filterDispositionLevel(const filterObject *Fi, const featureMap *pyramid,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int filterDispositionLevelFFT(const filterObject *Fi, const fftImage *featMapImage,
|
int filterDispositionLevelFFT(const CvLSVMFilterObject *Fi, const CvLSVMFftImage *featMapImage,
|
||||||
float **scoreFi,
|
float **scoreFi,
|
||||||
int **pointsX, int **pointsY)
|
int **pointsX, int **pointsY)
|
||||||
{
|
{
|
||||||
@ -397,7 +397,7 @@ int filterDispositionLevelFFT(const filterObject *Fi, const fftImage *featMapIma
|
|||||||
float *f;
|
float *f;
|
||||||
int i1, j1;
|
int i1, j1;
|
||||||
int res;
|
int res;
|
||||||
fftImage *filterImage;
|
CvLSVMFftImage *filterImage;
|
||||||
|
|
||||||
n1 = featMapImage->dimY;
|
n1 = featMapImage->dimY;
|
||||||
m1 = featMapImage->dimX;
|
m1 = featMapImage->dimX;
|
||||||
@ -493,7 +493,7 @@ int computeBorderSize(int maxXBorder, int maxYBorder, int *bx, int *by)
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int addNullableBorder(featureMap *map, int bx, int by)
|
int addNullableBorder(CvLSVMFeatureMap *map, int bx, int by)
|
||||||
{
|
{
|
||||||
int sizeX, sizeY, i, j, k;
|
int sizeX, sizeY, i, j, k;
|
||||||
float *new_map;
|
float *new_map;
|
||||||
@ -522,12 +522,12 @@ int addNullableBorder(featureMap *map, int bx, int by)
|
|||||||
return LATENT_SVM_OK;
|
return LATENT_SVM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
featureMap* featureMapBorderPartFilter(featureMap *map,
|
CvLSVMFeatureMap* featureMapBorderPartFilter(CvLSVMFeatureMap *map,
|
||||||
int maxXBorder, int maxYBorder)
|
int maxXBorder, int maxYBorder)
|
||||||
{
|
{
|
||||||
int bx, by;
|
int bx, by;
|
||||||
int sizeX, sizeY, i, j, k;
|
int sizeX, sizeY, i, j, k;
|
||||||
featureMap *new_map;
|
CvLSVMFeatureMap *new_map;
|
||||||
|
|
||||||
computeBorderSize(maxXBorder, maxYBorder, &bx, &by);
|
computeBorderSize(maxXBorder, maxYBorder, &bx, &by);
|
||||||
sizeX = map->sizeX + 2 * bx;
|
sizeX = map->sizeX + 2 * bx;
|
||||||
@ -555,7 +555,7 @@ featureMap* featureMapBorderPartFilter(featureMap *map,
|
|||||||
// Computation the maximum of the score function at the level
|
// Computation the maximum of the score function at the level
|
||||||
//
|
//
|
||||||
// API
|
// API
|
||||||
// int maxFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
// int maxFunctionalScoreFixedLevel(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const featurePyramid *H,
|
||||||
int level, float b,
|
int level, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
@ -579,8 +579,8 @@ featureMap* featureMapBorderPartFilter(featureMap *map,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int maxFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
int maxFunctionalScoreFixedLevel(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const CvLSVMFeaturePyramid *H,
|
||||||
int level, float b,
|
int level, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float *score, CvPoint **points,
|
float *score, CvPoint **points,
|
||||||
@ -588,14 +588,14 @@ int maxFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
{
|
{
|
||||||
int i, j, k, dimX, dimY, nF0, mF0, p;
|
int i, j, k, dimX, dimY, nF0, mF0, p;
|
||||||
int diff1, diff2, index, last, partsLevel;
|
int diff1, diff2, index, last, partsLevel;
|
||||||
filterDisposition **disposition;
|
CvLSVMFilterDisposition **disposition;
|
||||||
float *f;
|
float *f;
|
||||||
float *scores;
|
float *scores;
|
||||||
float sumScorePartDisposition, maxScore;
|
float sumScorePartDisposition, maxScore;
|
||||||
int res;
|
int res;
|
||||||
featureMap *map;
|
CvLSVMFeatureMap *map;
|
||||||
#ifdef FFT_CONV
|
#ifdef FFT_CONV
|
||||||
fftImage *rootFilterImage, *mapImage;
|
CvLSVMFftImage *rootFilterImage, *mapImage;
|
||||||
#else
|
#else
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -631,10 +631,10 @@ int maxFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
|
|
||||||
// Allocation memory for saving values of function D
|
// Allocation memory for saving values of function D
|
||||||
// on the level for each part filter
|
// on the level for each part filter
|
||||||
disposition = (filterDisposition **)malloc(sizeof(filterDisposition *) * n);
|
disposition = (CvLSVMFilterDisposition **)malloc(sizeof(CvLSVMFilterDisposition *) * n);
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
disposition[i] = (filterDisposition *)malloc(sizeof(filterDisposition));
|
disposition[i] = (CvLSVMFilterDisposition *)malloc(sizeof(CvLSVMFilterDisposition));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allocation memory for values of score function for each block on the level
|
// Allocation memory for values of score function for each block on the level
|
||||||
@ -801,7 +801,7 @@ int maxFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
// Computation score function at the level that exceed threshold
|
// Computation score function at the level that exceed threshold
|
||||||
//
|
//
|
||||||
// API
|
// API
|
||||||
// int thresholdFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
// int thresholdFunctionalScoreFixedLevel(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const featurePyramid *H,
|
||||||
int level, float b,
|
int level, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
@ -827,8 +827,8 @@ int maxFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int thresholdFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
int thresholdFunctionalScoreFixedLevel(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const CvLSVMFeaturePyramid *H,
|
||||||
int level, float b,
|
int level, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float scoreThreshold,
|
float scoreThreshold,
|
||||||
@ -837,14 +837,14 @@ int thresholdFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
{
|
{
|
||||||
int i, j, k, dimX, dimY, nF0, mF0, p;
|
int i, j, k, dimX, dimY, nF0, mF0, p;
|
||||||
int diff1, diff2, index, last, partsLevel;
|
int diff1, diff2, index, last, partsLevel;
|
||||||
filterDisposition **disposition;
|
CvLSVMFilterDisposition **disposition;
|
||||||
float *f;
|
float *f;
|
||||||
float *scores;
|
float *scores;
|
||||||
float sumScorePartDisposition;
|
float sumScorePartDisposition;
|
||||||
int res;
|
int res;
|
||||||
featureMap *map;
|
CvLSVMFeatureMap *map;
|
||||||
#ifdef FFT_CONV
|
#ifdef FFT_CONV
|
||||||
fftImage *rootFilterImage, *mapImage;
|
CvLSVMFftImage *rootFilterImage, *mapImage;
|
||||||
#else
|
#else
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
@ -879,10 +879,10 @@ int thresholdFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
|
|
||||||
// Allocation memory for saving values of function D
|
// Allocation memory for saving values of function D
|
||||||
// on the level for each part filter
|
// on the level for each part filter
|
||||||
disposition = (filterDisposition **)malloc(sizeof(filterDisposition *) * n);
|
disposition = (CvLSVMFilterDisposition **)malloc(sizeof(CvLSVMFilterDisposition *) * n);
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
disposition[i] = (filterDisposition *)malloc(sizeof(filterDisposition));
|
disposition[i] = (CvLSVMFilterDisposition *)malloc(sizeof(CvLSVMFilterDisposition));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allocation memory for values of score function for each block on the level
|
// Allocation memory for values of score function for each block on the level
|
||||||
@ -1038,7 +1038,7 @@ int thresholdFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
// Computation the maximum of the score function
|
// Computation the maximum of the score function
|
||||||
//
|
//
|
||||||
// API
|
// API
|
||||||
// int maxFunctionalScore(const filterObject **all_F, int n,
|
// int maxFunctionalScore(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H, float b,
|
const featurePyramid *H, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float *score,
|
float *score,
|
||||||
@ -1061,8 +1061,8 @@ int thresholdFunctionalScoreFixedLevel(const filterObject **all_F, int n,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int maxFunctionalScore(const filterObject **all_F, int n,
|
int maxFunctionalScore(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H, float b,
|
const CvLSVMFeaturePyramid *H, float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float *score,
|
float *score,
|
||||||
CvPoint **points, int **levels, int *kPoints,
|
CvPoint **points, int **levels, int *kPoints,
|
||||||
@ -1197,7 +1197,7 @@ int maxFunctionalScore(const filterObject **all_F, int n,
|
|||||||
// Computation score function that exceed threshold
|
// Computation score function that exceed threshold
|
||||||
//
|
//
|
||||||
// API
|
// API
|
||||||
// int thresholdFunctionalScore(const filterObject **all_F, int n,
|
// int thresholdFunctionalScore(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const featurePyramid *H,
|
||||||
float b,
|
float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
@ -1223,8 +1223,8 @@ int maxFunctionalScore(const filterObject **all_F, int n,
|
|||||||
// RESULT
|
// RESULT
|
||||||
// Error status
|
// Error status
|
||||||
*/
|
*/
|
||||||
int thresholdFunctionalScore(const filterObject **all_F, int n,
|
int thresholdFunctionalScore(const CvLSVMFilterObject **all_F, int n,
|
||||||
const featurePyramid *H,
|
const CvLSVMFeaturePyramid *H,
|
||||||
float b,
|
float b,
|
||||||
int maxXBorder, int maxYBorder,
|
int maxXBorder, int maxYBorder,
|
||||||
float scoreThreshold,
|
float scoreThreshold,
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include "precomp.hpp"
|
#include "precomp.hpp"
|
||||||
#include "_lsvm_routine.h"
|
#include "_lsvm_routine.h"
|
||||||
|
|
||||||
int allocFilterObject(filterObject **obj, const int sizeX, const int sizeY, const int p, const int xp){
|
int allocFilterObject(CvLSVMFilterObject **obj, const int sizeX, const int sizeY, const int p, const int xp){
|
||||||
int i;
|
int i;
|
||||||
(*obj) = (filterObject *)malloc(sizeof(filterObject));
|
(*obj) = (CvLSVMFilterObject *)malloc(sizeof(CvLSVMFilterObject));
|
||||||
(*obj)->sizeX = sizeX;
|
(*obj)->sizeX = sizeX;
|
||||||
(*obj)->sizeY = sizeY;
|
(*obj)->sizeY = sizeY;
|
||||||
(*obj)->p = p ;
|
(*obj)->p = p ;
|
||||||
@ -21,7 +21,7 @@ int allocFilterObject(filterObject **obj, const int sizeX, const int sizeY, cons
|
|||||||
}
|
}
|
||||||
return LATENT_SVM_OK;
|
return LATENT_SVM_OK;
|
||||||
}
|
}
|
||||||
int freeFilterObject (filterObject **obj){
|
int freeFilterObject (CvLSVMFilterObject **obj){
|
||||||
if(*obj == NULL) return 0;
|
if(*obj == NULL) return 0;
|
||||||
free((*obj)->H);
|
free((*obj)->H);
|
||||||
free(*obj);
|
free(*obj);
|
||||||
@ -29,9 +29,9 @@ int freeFilterObject (filterObject **obj){
|
|||||||
return LATENT_SVM_OK;
|
return LATENT_SVM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int allocFeatureMapObject(featureMap **obj, const int sizeX, const int sizeY, const int p, const int xp){
|
int allocFeatureMapObject(CvLSVMFeatureMap **obj, const int sizeX, const int sizeY, const int p, const int xp){
|
||||||
int i;
|
int i;
|
||||||
(*obj) = (featureMap *)malloc(sizeof(featureMap));
|
(*obj) = (CvLSVMFeatureMap *)malloc(sizeof(CvLSVMFeatureMap));
|
||||||
(*obj)->sizeX = sizeX;
|
(*obj)->sizeX = sizeX;
|
||||||
(*obj)->sizeY = sizeY;
|
(*obj)->sizeY = sizeY;
|
||||||
(*obj)->p = p ;
|
(*obj)->p = p ;
|
||||||
@ -42,7 +42,7 @@ int allocFeatureMapObject(featureMap **obj, const int sizeX, const int sizeY, co
|
|||||||
}
|
}
|
||||||
return LATENT_SVM_OK;
|
return LATENT_SVM_OK;
|
||||||
}
|
}
|
||||||
int freeFeatureMapObject (featureMap **obj){
|
int freeFeatureMapObject (CvLSVMFeatureMap **obj){
|
||||||
if(*obj == NULL) return 0;
|
if(*obj == NULL) return 0;
|
||||||
free((*obj)->Map);
|
free((*obj)->Map);
|
||||||
free(*obj);
|
free(*obj);
|
||||||
@ -50,15 +50,15 @@ int freeFeatureMapObject (featureMap **obj){
|
|||||||
return LATENT_SVM_OK;
|
return LATENT_SVM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int allocFeaturePyramidObject(featurePyramid **obj, const int lambda, const int countLevel){
|
int allocFeaturePyramidObject(CvLSVMFeaturePyramid **obj, const int lambda, const int countLevel){
|
||||||
(*obj) = (featurePyramid *)malloc(sizeof(featurePyramid));
|
(*obj) = (CvLSVMFeaturePyramid *)malloc(sizeof(CvLSVMFeaturePyramid));
|
||||||
(*obj)->countLevel = countLevel;
|
(*obj)->countLevel = countLevel;
|
||||||
(*obj)->pyramid = (featureMap **)malloc(sizeof(featureMap *) * countLevel);
|
(*obj)->pyramid = (CvLSVMFeatureMap **)malloc(sizeof(CvLSVMFeatureMap *) * countLevel);
|
||||||
(*obj)->lambda = lambda;
|
(*obj)->lambda = lambda;
|
||||||
return LATENT_SVM_OK;
|
return LATENT_SVM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int freeFeaturePyramidObject (featurePyramid **obj){
|
int freeFeaturePyramidObject (CvLSVMFeaturePyramid **obj){
|
||||||
int i;
|
int i;
|
||||||
if(*obj == NULL) return 0;
|
if(*obj == NULL) return 0;
|
||||||
for(i = 0; i < (*obj)->countLevel; i++)
|
for(i = 0; i < (*obj)->countLevel; i++)
|
||||||
@ -69,10 +69,10 @@ int freeFeaturePyramidObject (featurePyramid **obj){
|
|||||||
return LATENT_SVM_OK;
|
return LATENT_SVM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int allocFFTImage(fftImage **image, int p, int dimX, int dimY)
|
int allocFFTImage(CvLSVMFftImage **image, int p, int dimX, int dimY)
|
||||||
{
|
{
|
||||||
int i, j, size;
|
int i, j, size;
|
||||||
*image = (fftImage *)malloc(sizeof(fftImage));
|
*image = (CvLSVMFftImage *)malloc(sizeof(CvLSVMFftImage));
|
||||||
(*image)->p = p;
|
(*image)->p = p;
|
||||||
(*image)->dimX = dimX;
|
(*image)->dimX = dimX;
|
||||||
(*image)->dimY = dimY;
|
(*image)->dimY = dimY;
|
||||||
@ -89,7 +89,7 @@ int allocFFTImage(fftImage **image, int p, int dimX, int dimY)
|
|||||||
return LATENT_SVM_OK;
|
return LATENT_SVM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int freeFFTImage(fftImage **image)
|
int freeFFTImage(CvLSVMFftImage **image)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
if (*image == NULL) return LATENT_SVM_OK;
|
if (*image == NULL) return LATENT_SVM_OK;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user