2 #include "_lsvm_routine.h"
4 int allocFilterObject(CvLSVMFilterObject **obj, const int sizeX,
5 const int sizeY, const int numFeatures)
8 (*obj) = (CvLSVMFilterObject *)malloc(sizeof(CvLSVMFilterObject));
10 (*obj)->sizeY = sizeY;
11 (*obj)->numFeatures = numFeatures;
12 (*obj)->fineFunction[0] = 0.0f;
13 (*obj)->fineFunction[1] = 0.0f;
14 (*obj)->fineFunction[2] = 0.0f;
15 (*obj)->fineFunction[3] = 0.0f;
19 (*obj)->H = (float *) malloc(sizeof (float) *
20 (sizeX * sizeY * numFeatures));
21 for(i = 0; i < sizeX * sizeY * numFeatures; i++)
27 int freeFilterObject (CvLSVMFilterObject **obj)
29 if(*obj == NULL) return LATENT_SVM_MEM_NULL;
36 int allocFeatureMapObject(CvLSVMFeatureMap **obj, const int sizeX,
37 const int sizeY, const int numFeatures)
40 (*obj) = (CvLSVMFeatureMap *)malloc(sizeof(CvLSVMFeatureMap));
41 (*obj)->sizeX = sizeX;
42 (*obj)->sizeY = sizeY;
43 (*obj)->numFeatures = numFeatures;
44 (*obj)->map = (float *) malloc(sizeof (float) *
45 (sizeX * sizeY * numFeatures));
46 for(i = 0; i < sizeX * sizeY * numFeatures; i++)
48 (*obj)->map[i] = 0.0f;
52 int freeFeatureMapObject (CvLSVMFeatureMap **obj)
54 if(*obj == NULL) return LATENT_SVM_MEM_NULL;
61 int allocFeaturePyramidObject(CvLSVMFeaturePyramid **obj,
64 (*obj) = (CvLSVMFeaturePyramid *)malloc(sizeof(CvLSVMFeaturePyramid));
65 (*obj)->numLevels = numLevels;
66 (*obj)->pyramid = (CvLSVMFeatureMap **)malloc(
67 sizeof(CvLSVMFeatureMap *) * numLevels);
71 int freeFeaturePyramidObject (CvLSVMFeaturePyramid **obj)
74 if(*obj == NULL) return LATENT_SVM_MEM_NULL;
75 for(i = 0; i < (*obj)->numLevels; i++)
77 freeFeatureMapObject(&((*obj)->pyramid[i]));
79 free((*obj)->pyramid);
85 int allocFFTImage(CvLSVMFftImage **image, int numFeatures, int dimX, int dimY)
88 *image = (CvLSVMFftImage *)malloc(sizeof(CvLSVMFftImage));
89 (*image)->numFeatures = numFeatures;
90 (*image)->dimX = dimX;
91 (*image)->dimY = dimY;
92 (*image)->channels = (float **)malloc(sizeof(float *) * numFeatures);
93 size = 2 * dimX * dimY;
94 for (i = 0; i < numFeatures; i++)
96 (*image)->channels[i] = (float *)malloc(sizeof(float) * size);
97 for (j = 0; j < size; j++)
99 (*image)->channels[i][j] = 0.0f;
102 return LATENT_SVM_OK;
105 int freeFFTImage(CvLSVMFftImage **image)
108 if (*image == NULL) return LATENT_SVM_OK;
109 for (i = 0; i < (*image)->numFeatures; i++)
111 free((*image)->channels[i]);
112 (*image)->channels[i] = NULL;
114 free((*image)->channels);
115 (*image)->channels = NULL;
116 return LATENT_SVM_OK;