Commit bddaa00e authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

renamed filterObject -> CvLSVMFilterObject, position -> CvLSVMFilterPosition etc.

parent f4e5ef6a
...@@ -153,7 +153,7 @@ typedef struct ...@@ -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 ...@@ -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 ...@@ -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 @@ ...@@ -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, ...@@ -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); ...@@ -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); ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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 @@ ...@@ -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, ...@@ -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, ...@@ -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); ...@@ -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, ...@@ -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, ...@@ -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); ...@@ -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); ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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 @@ ...@@ -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
\ No newline at end of file
#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{ ...@@ -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{ ...@@ -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{ ...@@ -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{ ...@@ -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 @@ ...@@ -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" ...@@ -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){ ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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 @@ ...@@ -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, ...@@ -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, ...@@ -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){ ...@@ -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){ ...@@ -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){ ...@@ -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){ ...@@ -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){ ...@@ -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 ...@@ -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 ...@@ -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 * ...@@ -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 ...@@ -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 ...@@ -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,
......
This diff is collapsed.
#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 ...@@ -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){ ...@@ -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 ...@@ -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){ ...@@ -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){ ...@@ -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) ...@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment