refactoring latentSVM
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
#include "precomp.hpp"
|
||||
#include "_lsvm_routine.h"
|
||||
|
||||
int allocFilterObject(CvLSVMFilterObject **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 numFeatures)
|
||||
{
|
||||
int i;
|
||||
(*obj) = (CvLSVMFilterObject *)malloc(sizeof(CvLSVMFilterObject));
|
||||
(*obj)->sizeX = sizeX;
|
||||
(*obj)->sizeY = sizeY;
|
||||
(*obj)->p = p ;
|
||||
(*obj)->xp = xp ;
|
||||
(*obj)->sizeX = sizeX;
|
||||
(*obj)->sizeY = sizeY;
|
||||
(*obj)->numFeatures = numFeatures;
|
||||
(*obj)->fineFunction[0] = 0.0f;
|
||||
(*obj)->fineFunction[1] = 0.0f;
|
||||
(*obj)->fineFunction[2] = 0.0f;
|
||||
@@ -15,75 +16,87 @@ int allocFilterObject(CvLSVMFilterObject **obj, const int sizeX, const int sizeY
|
||||
(*obj)->V.x = 0;
|
||||
(*obj)->V.y = 0;
|
||||
(*obj)->V.l = 0;
|
||||
(*obj)->H = (float *) malloc(sizeof (float) * (sizeX * sizeY * p));
|
||||
for(i = 0; i < sizeX * sizeY * p; i++){
|
||||
(*obj)->H = (float *) malloc(sizeof (float) *
|
||||
(sizeX * sizeY * numFeatures));
|
||||
for(i = 0; i < sizeX * sizeY * numFeatures; i++)
|
||||
{
|
||||
(*obj)->H[i] = 0.0f;
|
||||
}
|
||||
return LATENT_SVM_OK;
|
||||
}
|
||||
int freeFilterObject (CvLSVMFilterObject **obj){
|
||||
if(*obj == NULL) return 0;
|
||||
int freeFilterObject (CvLSVMFilterObject **obj)
|
||||
{
|
||||
if(*obj == NULL) return LATENT_SVM_MEM_NULL;
|
||||
free((*obj)->H);
|
||||
free(*obj);
|
||||
(*obj) = NULL;
|
||||
return LATENT_SVM_OK;
|
||||
}
|
||||
|
||||
int allocFeatureMapObject(CvLSVMFeatureMap **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 numFeatures)
|
||||
{
|
||||
int i;
|
||||
(*obj) = (CvLSVMFeatureMap *)malloc(sizeof(CvLSVMFeatureMap));
|
||||
(*obj)->sizeX = sizeX;
|
||||
(*obj)->sizeY = sizeY;
|
||||
(*obj)->p = p ;
|
||||
(*obj)->xp = xp ;
|
||||
(*obj)->Map = (float *) malloc(sizeof (float) * (sizeX * sizeY * p));
|
||||
for(i = 0; i < sizeX * sizeY * p; i++){
|
||||
(*obj)->Map[i] = 0.0;
|
||||
(*obj)->sizeX = sizeX;
|
||||
(*obj)->sizeY = sizeY;
|
||||
(*obj)->numFeatures = numFeatures;
|
||||
(*obj)->map = (float *) malloc(sizeof (float) *
|
||||
(sizeX * sizeY * numFeatures));
|
||||
for(i = 0; i < sizeX * sizeY * numFeatures; i++)
|
||||
{
|
||||
(*obj)->map[i] = 0.0f;
|
||||
}
|
||||
return LATENT_SVM_OK;
|
||||
}
|
||||
int freeFeatureMapObject (CvLSVMFeatureMap **obj){
|
||||
if(*obj == NULL) return 0;
|
||||
free((*obj)->Map);
|
||||
int freeFeatureMapObject (CvLSVMFeatureMap **obj)
|
||||
{
|
||||
if(*obj == NULL) return LATENT_SVM_MEM_NULL;
|
||||
free((*obj)->map);
|
||||
free(*obj);
|
||||
(*obj) = NULL;
|
||||
return LATENT_SVM_OK;
|
||||
}
|
||||
|
||||
int allocFeaturePyramidObject(CvLSVMFeaturePyramid **obj, const int lambda, const int countLevel){
|
||||
int allocFeaturePyramidObject(CvLSVMFeaturePyramid **obj,
|
||||
const int numLevels)
|
||||
{
|
||||
(*obj) = (CvLSVMFeaturePyramid *)malloc(sizeof(CvLSVMFeaturePyramid));
|
||||
(*obj)->countLevel = countLevel;
|
||||
(*obj)->pyramid = (CvLSVMFeatureMap **)malloc(sizeof(CvLSVMFeatureMap *) * countLevel);
|
||||
(*obj)->lambda = lambda;
|
||||
(*obj)->numLevels = numLevels;
|
||||
(*obj)->pyramid = (CvLSVMFeatureMap **)malloc(
|
||||
sizeof(CvLSVMFeatureMap *) * numLevels);
|
||||
return LATENT_SVM_OK;
|
||||
}
|
||||
|
||||
int freeFeaturePyramidObject (CvLSVMFeaturePyramid **obj){
|
||||
int freeFeaturePyramidObject (CvLSVMFeaturePyramid **obj)
|
||||
{
|
||||
int i;
|
||||
if(*obj == NULL) return 0;
|
||||
for(i = 0; i < (*obj)->countLevel; i++)
|
||||
if(*obj == NULL) return LATENT_SVM_MEM_NULL;
|
||||
for(i = 0; i < (*obj)->numLevels; i++)
|
||||
{
|
||||
freeFeatureMapObject(&((*obj)->pyramid[i]));
|
||||
}
|
||||
free((*obj)->pyramid);
|
||||
free(*obj);
|
||||
(*obj) = NULL;
|
||||
return LATENT_SVM_OK;
|
||||
}
|
||||
|
||||
int allocFFTImage(CvLSVMFftImage **image, int p, int dimX, int dimY)
|
||||
int allocFFTImage(CvLSVMFftImage **image, int numFeatures, int dimX, int dimY)
|
||||
{
|
||||
int i, j, size;
|
||||
*image = (CvLSVMFftImage *)malloc(sizeof(CvLSVMFftImage));
|
||||
(*image)->p = p;
|
||||
(*image)->dimX = dimX;
|
||||
(*image)->dimY = dimY;
|
||||
(*image)->channels = (float **)malloc(sizeof(float *) * p);
|
||||
(*image)->numFeatures = numFeatures;
|
||||
(*image)->dimX = dimX;
|
||||
(*image)->dimY = dimY;
|
||||
(*image)->channels = (float **)malloc(sizeof(float *) * numFeatures);
|
||||
size = 2 * dimX * dimY;
|
||||
for (i = 0; i < p; i++)
|
||||
for (i = 0; i < numFeatures; i++)
|
||||
{
|
||||
(*image)->channels[i] = (float *)malloc(sizeof(float) * size);
|
||||
for (j = 0; j < size; j++)
|
||||
{
|
||||
(*image)->channels[i][j] = 0.0;
|
||||
(*image)->channels[i][j] = 0.0f;
|
||||
}
|
||||
}
|
||||
return LATENT_SVM_OK;
|
||||
@@ -91,9 +104,9 @@ int allocFFTImage(CvLSVMFftImage **image, int p, int dimX, int dimY)
|
||||
|
||||
int freeFFTImage(CvLSVMFftImage **image)
|
||||
{
|
||||
unsigned i;
|
||||
int i;
|
||||
if (*image == NULL) return LATENT_SVM_OK;
|
||||
for (i = 0; i < (*image)->p; i++)
|
||||
for (i = 0; i < (*image)->numFeatures; i++)
|
||||
{
|
||||
free((*image)->channels[i]);
|
||||
(*image)->channels[i] = NULL;
|
||||
|
Reference in New Issue
Block a user