Documentation - C API
ikmeans.c File Reference

Integer K-Means clustering - Definition. More...

#include "ikmeans.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "assert.h"
#include "ikmeans_init.tc"
#include "ikmeans_lloyd.tc"
#include "ikmeans_elkan.tc"

Functions

VlIKMFiltvl_ikm_new (int method)
 Create a new IKM quantizer.
void vl_ikm_delete (VlIKMFilt *f)
 Delete IKM quantizer.
int vl_ikm_train (VlIKMFilt *f, vl_uint8 const *data, int N)
 Train clusters.
void vl_ikm_push (VlIKMFilt *f, vl_uint *asgn, vl_uint8 const *data, int N)
 Project data to clusters.
vl_uint vl_ikm_push_one (vl_ikm_acc const *centers, vl_uint8 const *data, int M, int K)
 Project one datum to clusters.

Detailed Description

Author:
Brian Fulkerson
Andrea Vedaldi

Function Documentation

void vl_ikm_delete ( VlIKMFilt f)
Parameters:
fIKM quantizer.
VlIKMFilt* vl_ikm_new ( int  method)
Parameters:
methodClustering algorithm.

The function allocates initializes a new IKM quantizer to operate based algorithm method.

method has values in the enumerations VlIKMAlgorithms.

Returns:
new IKM quantizer.
void vl_ikm_push ( VlIKMFilt f,
vl_uint asgn,
vl_uint8 const *  data,
int  N 
)
Parameters:
fIKM quantizer.
asgnAssignments (out).
datadata.
Nnumber of data (N >= 1).

The function projects the data data on the integer K-means clusters specified by the IKM quantizer f. Notice that the quantizer must be initialized.

vl_uint vl_ikm_push_one ( vl_ikm_acc const *  centers,
vl_uint8 const *  data,
int  M,
int  K 
)
Parameters:
centerscenters.
datadatum to project.
Knumber of centers.
Mdimensionality of the datum.

The function projects the specified datum data on the clusters specified by the centers centers.

Returns:
the cluster index.
int vl_ikm_train ( VlIKMFilt f,
vl_uint8 const *  data,
int  N 
)
Parameters:
fIKM quantizer.
datadata.
Nnumber of data (N >= 1).
Returns:
-1 if an overflow may have occurred.