Merge pull request #75 form taka-no-me:comments/2463

This commit is contained in:
Andrey Kamaev 2012-10-22 18:31:20 +04:00
commit bfa466dcbd

View File

@ -31,28 +31,20 @@ int getFeatureMaps(const IplImage* image, const int k, CvLSVMFeatureMap **map)
int i, j, kk, c, ii, jj, d; int i, j, kk, c, ii, jj, d;
float * datadx, * datady; float * datadx, * datady;
//номер канала в цикле
int ch; int ch;
//переменные вычисления магнитуды
float magnitude, x, y, tx, ty; float magnitude, x, y, tx, ty;
IplImage * dx, * dy; IplImage * dx, * dy;
int *nearest; int *nearest;
float *w, a_x, b_x; float *w, a_x, b_x;
// ядро для вычисления градиентов изображение по осям x и y
float kernel[3] = {-1.f, 0.f, 1.f}; float kernel[3] = {-1.f, 0.f, 1.f};
CvMat kernel_dx = cvMat(1, 3, CV_32F, kernel); CvMat kernel_dx = cvMat(1, 3, CV_32F, kernel);
CvMat kernel_dy = cvMat(3, 1, CV_32F, kernel); CvMat kernel_dy = cvMat(3, 1, CV_32F, kernel);
// грачение градиента
float * r; float * r;
// новер сектора куда попало значение градиента
// четные иннексы не контрастное изображение
// не четные иннексы контрастное изображение
int * alfa; int * alfa;
// векторы границ секторов
float boundary_x[NUM_SECTOR + 1]; float boundary_x[NUM_SECTOR + 1];
float boundary_y[NUM_SECTOR + 1]; float boundary_y[NUM_SECTOR + 1];
float max, dotProd; float max, dotProd;
@ -70,7 +62,7 @@ int getFeatureMaps(const IplImage* image, const int k, CvLSVMFeatureMap **map)
sizeX = width / k; sizeX = width / k;
sizeY = height / k; sizeY = height / k;
px = 3 * NUM_SECTOR; // контрастное и не контрастное изображение px = 3 * NUM_SECTOR;
p = px; p = px;
stringSize = sizeX * p; stringSize = sizeX * p;
allocFeatureMapObject(map, sizeX, sizeY, p); allocFeatureMapObject(map, sizeX, sizeY, p);
@ -138,7 +130,6 @@ int getFeatureMaps(const IplImage* image, const int k, CvLSVMFeatureMap **map)
}/*for(i = 0; i < width; i++)*/ }/*for(i = 0; i < width; i++)*/
}/*for(j = 0; j < height; j++)*/ }/*for(j = 0; j < height; j++)*/
//подсчет весов и смещений
nearest = (int *)malloc(sizeof(int ) * k); nearest = (int *)malloc(sizeof(int ) * k);
w = (float*)malloc(sizeof(float) * (k * 2)); w = (float*)malloc(sizeof(float) * (k * 2));
@ -167,7 +158,6 @@ int getFeatureMaps(const IplImage* image, const int k, CvLSVMFeatureMap **map)
}/*for(j = k / 2; j < k; j++)*/ }/*for(j = k / 2; j < k; j++)*/
//интерполяция
for(i = 0; i < sizeY; i++) for(i = 0; i < sizeY; i++)
{ {
for(j = 0; j < sizeX; j++) for(j = 0; j < sizeX; j++)
@ -275,7 +265,7 @@ int normalizeAndTruncate(CvLSVMFeatureMap *map, const float alfa)
sizeY -= 2; sizeY -= 2;
newData = (float *)malloc (sizeof(float) * (sizeX * sizeY * pp)); newData = (float *)malloc (sizeof(float) * (sizeX * sizeY * pp));
//normalization //normalization
for(i = 1; i <= sizeY; i++) for(i = 1; i <= sizeY; i++)
{ {
for(j = 1; j <= sizeX; j++) for(j = 1; j <= sizeX; j++)
@ -336,12 +326,12 @@ int normalizeAndTruncate(CvLSVMFeatureMap *map, const float alfa)
}/*for(ii = 0; ii < 2 * p; ii++)*/ }/*for(ii = 0; ii < 2 * p; ii++)*/
}/*for(j = 1; j <= sizeX; j++)*/ }/*for(j = 1; j <= sizeX; j++)*/
}/*for(i = 1; i <= sizeY; i++)*/ }/*for(i = 1; i <= sizeY; i++)*/
//truncation //truncation
for(i = 0; i < sizeX * sizeY * pp; i++) for(i = 0; i < sizeX * sizeY * pp; i++)
{ {
if(newData [i] > alfa) newData [i] = alfa; if(newData [i] > alfa) newData [i] = alfa;
}/*for(i = 0; i < sizeX * sizeY * pp; i++)*/ }/*for(i = 0; i < sizeX * sizeY * pp; i++)*/
//swop data //swap data
map->numFeatures = pp; map->numFeatures = pp;
map->sizeX = sizeX; map->sizeX = sizeX;
@ -354,6 +344,7 @@ int normalizeAndTruncate(CvLSVMFeatureMap *map, const float alfa)
return LATENT_SVM_OK; return LATENT_SVM_OK;
} }
/* /*
// Feature map reduction // Feature map reduction
// In each cell we reduce dimension of the feature vector // In each cell we reduce dimension of the feature vector
@ -427,7 +418,7 @@ int PCAFeatureMaps(CvLSVMFeatureMap *map)
} /*for(ii = 0; ii < yp; ii++)*/ } /*for(ii = 0; ii < yp; ii++)*/
}/*for(j = 0; j < sizeX; j++)*/ }/*for(j = 0; j < sizeX; j++)*/
}/*for(i = 0; i < sizeY; i++)*/ }/*for(i = 0; i < sizeY; i++)*/
//swop data //swap data
map->numFeatures = pp; map->numFeatures = pp;