MCPcopy Create free account
hub / github.com/Smorodov/Multitarget-tracker / PCAFeatureMaps

Function PCAFeatureMaps

src/Tracker/ldes/fhog.cpp:388–456  ·  view source on GitHub ↗

// Feature map reduction // In each cell we reduce dimension of the feature vector // according to original paper special procedure // // API // int PCAFeatureMaps(featureMap *map) // INPUT // map - feature map // OUTPUT // map - feature map // RESULT // Error status */

Source from the content-addressed store, hash-verified

386// Error status
387*/
388int PCAFeatureMaps(CvLSVMFeatureMapCaskade *map)
389{
390 int i,j, ii, jj, k;
391 int sizeX, sizeY, p, pp, xp, yp, pos1, pos2;
392 float * newData;
393 float val;
394 float nx, ny;
395
396 sizeX = map->sizeX;
397 sizeY = map->sizeY;
398 p = map->numFeatures;
399 pp = NUM_SECTOR * 3 + 4;
400 yp = 4;
401 xp = NUM_SECTOR;
402
403 nx = 1.0f / sqrtf((float)(xp * 2));
404 ny = 1.0f / sqrtf((float)(yp ));
405
406 newData = (float *)malloc (sizeof(float) * (sizeX * sizeY * pp));
407
408 for(i = 0; i < sizeY; i++)
409 {
410 for(j = 0; j < sizeX; j++)
411 {
412 pos1 = ((i)*sizeX + j)*p;
413 pos2 = ((i)*sizeX + j)*pp;
414 k = 0;
415 for(jj = 0; jj < xp * 2; jj++)
416 {
417 val = 0;
418 for(ii = 0; ii < yp; ii++)
419 {
420 val += map->map[pos1 + yp * xp + ii * xp * 2 + jj];
421 }/*for(ii = 0; ii < yp; ii++)*/
422 newData[pos2 + k] = val * ny;
423 k++;
424 }/*for(jj = 0; jj < xp * 2; jj++)*/
425 for(jj = 0; jj < xp; jj++)
426 {
427 val = 0;
428 for(ii = 0; ii < yp; ii++)
429 {
430 val += map->map[pos1 + ii * xp + jj];
431 }/*for(ii = 0; ii < yp; ii++)*/
432 newData[pos2 + k] = val * ny;
433 k++;
434 }/*for(jj = 0; jj < xp; jj++)*/
435 for(ii = 0; ii < yp; ii++)
436 {
437 val = 0;
438 for(jj = 0; jj < 2 * xp; jj++)
439 {
440 val += map->map[pos1 + yp * xp + ii * xp * 2 + jj];
441 }/*for(jj = 0; jj < xp; jj++)*/
442 newData[pos2 + k] = val * nx;
443 k++;
444 } /*for(ii = 0; ii < yp; ii++)*/
445 }/*for(j = 0; j < sizeX; j++)*/

Callers 1

getFeaturesMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected