00001
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef VL_HIKMEANS_H
00014 #define VL_HIKMEANS_H
00015
00016 #include "generic.h"
00017 #include "ikmeans.h"
00018
00019 struct _VLHIKMTree ;
00020 struct _VLHIKMNode ;
00021
00027 typedef struct _VlHIKMNode
00028 {
00029 VlIKMFilt *filter ;
00030 struct _VlHIKMNode **children ;
00031 } VlHIKMNode ;
00032
00034 typedef struct _VlHIKMTree {
00035 int M ;
00036 int K ;
00037 int max_niters ;
00038 int method ;
00039 int verb ;
00041 int depth ;
00042 VlHIKMNode * root;
00043 } VlHIKMTree ;
00044
00048 VL_EXPORT VlHIKMTree *vl_hikm_new (int method) ;
00049 VL_EXPORT void vl_hikm_delete (VlHIKMTree *f) ;
00055 VL_INLINE int vl_hikm_get_ndims (VlHIKMTree const *f) ;
00056 VL_INLINE int vl_hikm_get_K (VlHIKMTree const *f) ;
00057 VL_INLINE int vl_hikm_get_depth (VlHIKMTree const *f) ;
00058 VL_INLINE int vl_hikm_get_verbosity (VlHIKMTree const *f) ;
00059 VL_INLINE int vl_hikm_get_max_niters (VlHIKMTree const *f) ;
00060 VL_INLINE VlHIKMNode const * vl_hikm_get_root (VlHIKMTree const *f) ;
00066 VL_INLINE void vl_hikm_set_verbosity (VlHIKMTree *f, int verb) ;
00067 VL_INLINE void vl_hikm_set_max_niters (VlHIKMTree *f, int max_niters) ;
00073 VL_EXPORT void vl_hikm_init (VlHIKMTree *f, int M, int K, int depth) ;
00074 VL_EXPORT void vl_hikm_train (VlHIKMTree *f, vl_uint8 const *data, int N) ;
00075 VL_EXPORT void vl_hikm_push (VlHIKMTree *f, vl_uint *asgn, vl_uint8 const *data, int N) ;
00084 VL_INLINE int
00085 vl_hikm_get_ndims (VlHIKMTree const* f)
00086 {
00087 return f-> M ;
00088 }
00089
00096 VL_INLINE int
00097 vl_hikm_get_K (VlHIKMTree const* f)
00098 {
00099 return f-> K ;
00100 }
00101
00108 VL_INLINE int
00109 vl_hikm_get_depth (VlHIKMTree const* f)
00110 {
00111 return f-> depth ;
00112 }
00113
00114
00121 VL_INLINE int
00122 vl_hikm_get_verbosity (VlHIKMTree const* f)
00123 {
00124 return f-> verb ;
00125 }
00126
00133 VL_INLINE int
00134 vl_hikm_get_max_niters (VlHIKMTree const* f)
00135 {
00136 return f-> max_niters ;
00137 }
00138
00145 VL_INLINE VlHIKMNode const *
00146 vl_hikm_get_root (VlHIKMTree const* f)
00147 {
00148 return f-> root ;
00149 }
00150
00157 VL_INLINE void
00158 vl_hikm_set_verbosity (VlHIKMTree *f, int verb)
00159 {
00160 f-> verb = verb ;
00161 }
00162
00169 VL_INLINE void
00170 vl_hikm_set_max_niters (VlHIKMTree *f, int max_niters)
00171 {
00172 f-> max_niters = max_niters ;
00173 }
00174
00175
00176 #endif