Commit 191f25ae authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

renamed internal headers to avoid conflicts with system header files

parent 87f6e500
...@@ -6,10 +6,9 @@ ...@@ -6,10 +6,9 @@
#define SVM_LATENTSVM #define SVM_LATENTSVM
#include <stdio.h> #include <stdio.h>
#include "precomp.hpp" #include "_lsvm_types.h"
#include "_types.h" #include "_lsvm_error.h"
#include "_error.h" #include "_lsvm_routine.h"
#include "_routine.h"
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
// Building feature pyramid // Building feature pyramid
......
#ifndef SVM_ERROR #ifndef SVM_ERROR
#define SVM_ERROR #define SVM_ERROR
#define LATENT_SVM_OK 0 #define LATENT_SVM_OK 0
#define DISTANCE_TRANSFORM_OK 1 #define DISTANCE_TRANSFORM_OK 1
#define DISTANCE_TRANSFORM_GET_INTERSECTION_ERROR -1 #define DISTANCE_TRANSFORM_GET_INTERSECTION_ERROR -1
#define DISTANCE_TRANSFORM_ERROR -2 #define DISTANCE_TRANSFORM_ERROR -2
#define DISTANCE_TRANSFORM_EQUAL_POINTS -3 #define DISTANCE_TRANSFORM_EQUAL_POINTS -3
#define LATENT_SVM_GET_FEATURE_PYRAMID_FAILED -4 #define LATENT_SVM_GET_FEATURE_PYRAMID_FAILED -4
#define LATENT_SVM_SEARCH_OBJECT_FAILED -5 #define LATENT_SVM_SEARCH_OBJECT_FAILED -5
#define LATENT_SVM_FAILED_SUPERPOSITION -6 #define LATENT_SVM_FAILED_SUPERPOSITION -6
#define FILTER_OUT_OF_BOUNDARIES -7 #define FILTER_OUT_OF_BOUNDARIES -7
#define FFT_OK 2 #define FFT_OK 2
#define FFT_ERROR -8 #define FFT_ERROR -8
#endif #endif
\ No newline at end of file
#ifndef _FFT_H #ifndef _LSVM_FFT_H
#define _FFT_H #define _LSVM_FFT_H
#include "precomp.hpp" #include "_lsvm_types.h"
#include "_types.h" #include "_lsvm_error.h"
#include "_error.h" #include <math.h>
#include <math.h> /*
// 1-dimensional FFT
/* //
// 1-dimensional FFT // API
// // int fft(float *x_in, float *x_out, int n, int shift);
// API // INPUT
// int fft(float *x_in, float *x_out, int n, int shift); // x_in - input signal
// INPUT // n - number of elements for searching Fourier image
// x_in - input signal // shift - shift between input elements
// n - number of elements for searching Fourier image // OUTPUT
// shift - shift between input elements // x_out - output signal (contains 2n elements in order
// OUTPUT Re(x_in[0]), Im(x_in[0]), Re(x_in[1]), Im(x_in[1]) and etc.)
// x_out - output signal (contains 2n elements in order // RESULT
Re(x_in[0]), Im(x_in[0]), Re(x_in[1]), Im(x_in[1]) and etc.) // Error status
// RESULT */
// Error status int fft(float *x_in, float *x_out, int n, int shift);
*/
int fft(float *x_in, float *x_out, int n, int shift); /*
// Inverse 1-dimensional FFT
/* //
// Inverse 1-dimensional FFT // API
// // int fftInverse(float *x_in, float *x_out, int n, int shift);
// API // INPUT
// int fftInverse(float *x_in, float *x_out, int n, int shift); // x_in - Fourier image of 1d input signal(contains 2n elements
// INPUT in order Re(x_in[0]), Im(x_in[0]),
// x_in - Fourier image of 1d input signal(contains 2n elements Re(x_in[1]), Im(x_in[1]) and etc.)
in order Re(x_in[0]), Im(x_in[0]), // n - number of elements for searching counter FFT image
Re(x_in[1]), Im(x_in[1]) and etc.) // shift - shift between input elements
// n - number of elements for searching counter FFT image // OUTPUT
// shift - shift between input elements // x_in - input signal (contains n elements)
// OUTPUT // RESULT
// x_in - input signal (contains n elements) // Error status
// RESULT */
// Error status int fftInverse(float *x_in, float *x_out, int n, int shift);
*/
int fftInverse(float *x_in, float *x_out, int n, int shift); /*
// 2-dimensional FFT
/* //
// 2-dimensional FFT // API
// // int fft2d(float *x_in, float *x_out, int numRows, int numColls);
// API // INPUT
// int fft2d(float *x_in, float *x_out, int numRows, int numColls); // x_in - input signal (matrix, launched by rows)
// INPUT // numRows - number of rows
// x_in - input signal (matrix, launched by rows) // numColls - number of collumns
// numRows - number of rows // OUTPUT
// numColls - number of collumns // x_out - output signal (contains (2 * numRows * numColls) elements
// OUTPUT in order Re(x_in[0][0]), Im(x_in[0][0]),
// x_out - output signal (contains (2 * numRows * numColls) elements Re(x_in[0][1]), Im(x_in[0][1]) and etc.)
in order Re(x_in[0][0]), Im(x_in[0][0]), // RESULT
Re(x_in[0][1]), Im(x_in[0][1]) and etc.) // Error status
// RESULT */
// Error status int fft2d(float *x_in, float *x_out, int numRows, int numColls);
*/
int fft2d(float *x_in, float *x_out, int numRows, int numColls); /*
// Inverse 2-dimensional FFT
/* //
// Inverse 2-dimensional FFT // API
// // int fftInverse2d(float *x_in, float *x_out, int numRows, int numColls);
// API // INPUT
// int fftInverse2d(float *x_in, float *x_out, int numRows, int numColls); // x_in - Fourier image of matrix (contains (2 * numRows * numColls)
// INPUT elements in order Re(x_in[0][0]), Im(x_in[0][0]),
// x_in - Fourier image of matrix (contains (2 * numRows * numColls) Re(x_in[0][1]), Im(x_in[0][1]) and etc.)
elements in order Re(x_in[0][0]), Im(x_in[0][0]), // numRows - number of rows
Re(x_in[0][1]), Im(x_in[0][1]) and etc.) // numColls - number of collumns
// numRows - number of rows // OUTPUT
// numColls - number of collumns // x_out - initial signal (matrix, launched by rows)
// OUTPUT // RESULT
// x_out - initial signal (matrix, launched by rows) // Error status
// RESULT */
// Error status int fftInverse2d(float *x_in, float *x_out, int numRows, int numColls);
*/
int fftInverse2d(float *x_in, float *x_out, int numRows, int numColls);
#endif #endif
\ No newline at end of file
#ifndef RESIZEIMG #ifndef RESIZEIMG
#define RESIZEIMG #define RESIZEIMG
#include "precomp.hpp" #include "precomp.hpp"
#include "_types.h" #include "_types.h"
IplImage * resize_opencv (IplImage * img, float scale); IplImage * resize_opencv (IplImage * img, float scale);
IplImage * resize_article_dp1(IplImage * img, float scale, const int k); IplImage * resize_article_dp1(IplImage * img, float scale, const int k);
IplImage * resize_article_dp(IplImage * img, float scale, const int k); IplImage * resize_article_dp(IplImage * img, float scale, const int k);
#endif #endif
\ No newline at end of file
#ifndef _ROUTINE_H #ifndef _LSVM_ROUTINE_H
#define _ROUTINE_H #define _LSVM_ROUTINE_H
#include "precomp.hpp" #include "_lsvm_types.h"
#include "_types.h" #include "_lsvm_error.h"
#include "_error.h"
//////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////// // Memory management routines
// Memory management routines // All paramaters names correspond to previous data structures description
// All paramaters names correspond to previous data structures description // All "alloc" functions return allocated memory for 1 object
// All "alloc" functions return allocated memory for 1 object // 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(filterObject **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 (filterObject **obj);
int allocFeatureMapObject(featureMap **obj, const int sizeX, const int sizeY,
int allocFeatureMapObject(featureMap **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 (featureMap **obj);
#ifdef __cplusplus
#ifdef __cplusplus extern "C"
extern "C" #endif
#endif int allocFeaturePyramidObject(featurePyramid **obj,
int allocFeaturePyramidObject(featurePyramid **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 (featurePyramid **obj); int allocFFTImage(fftImage **image, int p, int dimX, int dimY);
int allocFFTImage(fftImage **image, int p, int dimX, int dimY); int freeFFTImage(fftImage **image);
int freeFFTImage(fftImage **image);
#endif #endif
\ No newline at end of file
#ifndef SVM_TYPE #ifndef SVM_TYPE
#define SVM_TYPE #define SVM_TYPE
//#include "opencv2/core/core.hpp" //#include "opencv2/core/core.hpp"
//#include "opencv2/highgui/highgui.hpp" //#include "opencv2/highgui/highgui.hpp"
#include "precomp.hpp" #include "precomp.hpp"
//#define FFT_CONV //#define FFT_CONV
// PI // PI
#define PI 3.1415926535897932384626433832795 #define PI 3.1415926535897932384626433832795
// //
#define EPS 0.000001 #define EPS 0.000001
// //
#define F_MAX 3.402823466e+38 #define F_MAX 3.402823466e+38
#define F_MIN -3.402823465e+38 #define F_MIN -3.402823465e+38
// 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
#define CNTPARTION 9 #define CNTPARTION 9
// The number of levels in image resize procedure // The number of levels in image resize procedure
// We need Lambda levels to resize image twice // We need Lambda levels to resize image twice
#define LAMBDA 10 #define LAMBDA 10
// Block size. Used in feature pyramid building procedure // Block size. Used in feature pyramid building procedure
#define SIDE_LENGTH 8 #define SIDE_LENGTH 8
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
// main data structures // // main data structures //
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
// DataType: STRUCT featureMap // DataType: STRUCT featureMap
// FEATURE MAP DESCRIPTION // FEATURE MAP DESCRIPTION
// Rectangular map (sizeX x sizeY), // Rectangular map (sizeX x sizeY),
// every cell stores feature vector (dimension = p) // every cell stores feature vector (dimension = p)
// H - matrix of feature vectors // H - matrix of feature vectors
// to set and get feature vectors (i,j) // to set and get feature vectors (i,j)
// used formula Map[(j * sizeX + i) * p + k], where // used formula Map[(j * sizeX + i) * p + k], where
// k - component of feature vector in cell (i, j) // k - component of feature vector in cell (i, j)
// END OF FEATURE MAP DESCRIPTION // END OF FEATURE MAP DESCRIPTION
// xp - auxillary parameter for internal use // xp - auxillary parameter for internal use
// 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{
int sizeX; int sizeX;
int sizeY; int sizeY;
int p; int p;
int xp; int xp;
float *Map; float *Map;
} featureMap; } featureMap;
// DataType: STRUCT featurePyramid // DataType: STRUCT featurePyramid
// //
// countLevel - number of levels in the feature pyramid // countLevel - number of levels in the feature pyramid
// lambda - resize scale coefficient // lambda - resize scale coefficient
// pyramid - array of pointers to feature map at different levels // pyramid - array of pointers to feature map at different levels
typedef struct{ typedef struct{
int countLevel; int countLevel;
int lambda; int lambda;
featureMap **pyramid; featureMap **pyramid;
} featurePyramid; } featurePyramid;
// DataType: STRUCT filterDisposition // DataType: STRUCT filterDisposition
// The structure stores preliminary results in optimization process // The structure stores preliminary results in optimization process
// with objective function D // with objective function D
// //
// x - array with X coordinates of optimization problems solutions // x - array with X coordinates of optimization problems solutions
// y - array with Y coordinates of optimization problems solutions // y - array with Y coordinates of optimization problems solutions
// score - array with optimal objective values // score - array with optimal objective values
typedef struct{ typedef struct{
float *score; float *score;
int *x; int *x;
int *y; int *y;
} filterDisposition; } filterDisposition;
// DataType: STRUCT fftImage // DataType: STRUCT fftImage
// The structure stores FFT image // The structure stores FFT image
// //
// p - number of channels // p - number of channels
// x - array of FFT images for 2d signals // x - array of FFT images for 2d signals
// n - number of rows // n - number of rows
// m - number of collums // m - number of collums
typedef struct{ typedef struct{
unsigned int p; unsigned int p;
unsigned int dimX; unsigned int dimX;
unsigned int dimY; unsigned int dimY;
float **channels; float **channels;
} fftImage; } fftImage;
#endif #endif
#ifndef LSVM_PARSER
#define LSVM_PARSER
#include "precomp.hpp"
#include "_types.h"
#define MODEL 1
#define P 2
#define COMP 3
#define SCORE 4
#define RFILTER 100
#define PFILTERs 101
#define PFILTER 200
#define SIZEX 150
#define SIZEY 151
#define WEIGHTS 152
#define TAGV 300
#define Vx 350
#define Vy 351
#define TAGD 400
#define Dx 451
#define Dy 452
#define Dxx 453
#define Dyy 454
#define BTAG 500
#define STEP_END 1000
#define EMODEL (STEP_END + MODEL)
#define EP (STEP_END + P)
#define ECOMP (STEP_END + COMP)
#define ESCORE (STEP_END + SCORE)
#define ERFILTER (STEP_END + RFILTER)
#define EPFILTERs (STEP_END + PFILTERs)
#define EPFILTER (STEP_END + PFILTER)
#define ESIZEX (STEP_END + SIZEX)
#define ESIZEY (STEP_END + SIZEY)
#define EWEIGHTS (STEP_END + WEIGHTS)
#define ETAGV (STEP_END + TAGV)
#define EVx (STEP_END + Vx)
#define EVy (STEP_END + Vy)
#define ETAGD (STEP_END + TAGD)
#define EDx (STEP_END + Dx)
#define EDy (STEP_END + Dy)
#define EDxx (STEP_END + Dxx)
#define EDyy (STEP_END + Dyy)
#define EBTAG (STEP_END + BTAG)
//extern "C" {
int LSVMparser(const char * filename, filterObject *** model, int *last, int *max, int **comp, float **b, int *count, float * score);
#ifdef __cplusplus
extern "C"
#endif
int loadModel(
const char *modelPath,
filterObject ***filters,
int *kFilters,
int *kComponents,
int **kPartFilters,
float **b,
float *scoreThreshold);
//};
#endif
\ No newline at end of file
#include "_distancetransform.h" #include "precomp.hpp"
#include "_lsvm_distancetransform.h"
/* /*
// Computation the point of intersection functions // Computation the point of intersection functions
......
#include "precomp.hpp"
#include "_latentsvm.h" #include "_latentsvm.h"
#include "_resizeimg.h" #include "_lsvm_resizeimg.h"
#ifndef max #ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b)) #define max(a,b) (((a) > (b)) ? (a) : (b))
......
#include "_fft.h" #include "precomp.hpp"
#include "_lsvm_fft.h"
int getEntireRes(int number, int divisor, int *entire, int *res) int getEntireRes(int number, int divisor, int *entire, int *res)
{ {
......
#include "precomp.hpp"
#include "_latentsvm.h" #include "_latentsvm.h"
#include "_matching.h" #include "_lsvm_matching.h"
/* /*
// Transformation filter displacement from the block space // Transformation filter displacement from the block space
......
#include "precomp.hpp" #include "precomp.hpp"
#include "_lsvmparser.h" #include "_lsvmparser.h"
#include "_matching.h" #include "_lsvm_matching.h"
/* /*
// load trained detector from a file // load trained detector from a file
......
#include "_matching.h" #include "precomp.hpp"
#include "_lsvm_matching.h"
#include <stdio.h> #include <stdio.h>
#ifndef max #ifndef max
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgproc/imgproc_c.h" #include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/core/core_c.h" #include "opencv2/core/core_c.h"
#include "opencv2/highgui/highgui_c.h" #include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/internal.hpp" #include "opencv2/core/internal.hpp"
#endif #endif
#include "_resizeimg.h" #include "precomp.hpp"
#include "_lsvm_resizeimg.h"
#include <stdio.h> #include <stdio.h>
#include <assert.h> #include <assert.h>
#include <math.h> #include <math.h>
IplImage * resize_opencv (IplImage * img, float scale){ IplImage * resize_opencv (IplImage * img, float scale){
IplImage * imgTmp; IplImage * imgTmp;
......
#include "_routine.h" #include "precomp.hpp"
#include "_lsvm_routine.h"
int allocFilterObject(filterObject **obj, const int sizeX, const int sizeY, const int p, const int xp){ int allocFilterObject(filterObject **obj, const int sizeX, const int sizeY, const int p, const int xp){
int i; int i;
......
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