00001 00008 /* 00009 Copyright (C) 2013 Hana Sarbortova and Andrea Vedaldi. 00010 All rights reserved. 00011 00012 This file is part of the VLFeat library and is made available under 00013 the terms of the BSD license (see the COPYING file). 00014 */ 00015 00016 #ifndef VL_LIOP_H 00017 #define VL_LIOP_H 00018 00019 #include "generic.h" 00020 00022 typedef struct _VlLiopDesc 00023 { 00024 vl_int numNeighbours; 00025 vl_int numSpatialBins; 00026 float intensityThreshold; 00027 vl_size dimension; 00029 /* Pixels in the circular patch */ 00030 vl_size patchSideLength ; 00031 vl_size patchSize ; /* only circular neighbourhood */ 00032 vl_uindex * patchPixels ; 00033 float * patchIntensities ; 00034 vl_uindex * patchPermutation ; 00035 00036 /* Neighbourhoods of each pixel (samples in a circle) */ 00037 float neighRadius; 00039 float * neighIntensities ; 00040 vl_uindex * neighPermutation ; 00041 double * neighSamplesX ; 00042 double * neighSamplesY ; 00043 00044 } VlLiopDesc ; 00045 00048 VL_EXPORT 00049 VlLiopDesc * vl_liopdesc_new (vl_int numNeighbours, 00050 vl_int numSpatialBins, 00051 float radius, 00052 vl_size sideLength) ; 00053 00054 VL_EXPORT 00055 VlLiopDesc * vl_liopdesc_new_basic (vl_size sideLength) ; 00056 00057 VL_EXPORT 00058 void vl_liopdesc_delete (VlLiopDesc * self) ; 00063 VL_EXPORT vl_size vl_liopdesc_get_dimension (VlLiopDesc const * self) ; 00064 VL_EXPORT vl_size vl_liopdesc_get_num_neighbours (VlLiopDesc const * self) ; 00065 VL_EXPORT float vl_liopdesc_get_intensity_threshold (VlLiopDesc const * self) ; 00066 VL_EXPORT vl_size vl_liopdesc_get_num_spatial_bins (VlLiopDesc const * self) ; 00067 VL_EXPORT double vl_liopdesc_get_neighbourhood_radius (VlLiopDesc const * self) ; 00068 VL_EXPORT void vl_liopdesc_set_intensity_threshold (VlLiopDesc * self, float x) ; 00073 VL_EXPORT 00074 void vl_liopdesc_process (VlLiopDesc * liop, float * desc, float const * patch) ; 00077 /* VL_LIOP_H */ 00078 #endif