Extracts mean-normalized intensity patch around a pixel. More...
#include <intensity_descriptor.hpp>
Public Member Functions | |
const int * | getDescriptorIndexOffsets () const |
int | getDescriptorLength () const |
int | getDescriptorStride () const |
IntensityDescriptorExtractor (int raw_gray_stride, int feature_window_size) | |
void | populateDescriptorAligned (uint8_t *image, int x, int y, uint8_t *descriptor) const |
void | populateDescriptorInterp (uint8_t *image, float x, float y, uint8_t *descriptor) const |
void | populateDescriptorsAligned (uint8_t *image, const KeypointData *keypoints, int num_keypoints, uint8_t *descriptors) const |
void | populateDescriptorsInterp (uint8_t *image, const KeypointData *keypoints, int num_keypoints, uint8_t *descriptors) const |
virtual | ~IntensityDescriptorExtractor () |
Private Member Functions | |
void | initialize () |
IntensityDescriptorExtractor (const IntensityDescriptorExtractor &other) | |
void | normalizeDescriptor (uint8_t *desc) const |
IntensityDescriptorExtractor & | operator= (const IntensityDescriptorExtractor &other) |
Private Attributes | |
int | _brightess_offset_num_sse_ops |
uint8_t * | _descriptor_brightness_offset |
int * | _descriptor_index_offsets |
int | _descriptor_len |
int | _descriptor_stride |
int | _feature_window_size |
int | _num_descriptor_pad_bytes |
int | _raw_gray_stride |
Extracts mean-normalized intensity patch around a pixel.
Definition at line 17 of file intensity_descriptor.hpp.
fovis::IntensityDescriptorExtractor::IntensityDescriptorExtractor | ( | int | raw_gray_stride, |
int | feature_window_size | ||
) | [inline] |
raw_gray_stride | specifies the number of bytes separating each row of the input image. |
feature_window_size | the size of the descriptor window. |
Definition at line 24 of file intensity_descriptor.hpp.
virtual fovis::IntensityDescriptorExtractor::~IntensityDescriptorExtractor | ( | ) | [inline, virtual] |
Definition at line 30 of file intensity_descriptor.hpp.
fovis::IntensityDescriptorExtractor::IntensityDescriptorExtractor | ( | const IntensityDescriptorExtractor & | other | ) | [private] |
const int* fovis::IntensityDescriptorExtractor::getDescriptorIndexOffsets | ( | ) | const [inline] |
Definition at line 95 of file intensity_descriptor.hpp.
int fovis::IntensityDescriptorExtractor::getDescriptorLength | ( | ) | const [inline] |
Definition at line 102 of file intensity_descriptor.hpp.
int fovis::IntensityDescriptorExtractor::getDescriptorStride | ( | ) | const [inline] |
Definition at line 87 of file intensity_descriptor.hpp.
void fovis::IntensityDescriptorExtractor::initialize | ( | ) | [private] |
Definition at line 26 of file intensity_descriptor.cpp.
void fovis::IntensityDescriptorExtractor::normalizeDescriptor | ( | uint8_t * | desc | ) | const [private] |
Definition at line 111 of file intensity_descriptor.cpp.
IntensityDescriptorExtractor& fovis::IntensityDescriptorExtractor::operator= | ( | const IntensityDescriptorExtractor & | other | ) | [private] |
void fovis::IntensityDescriptorExtractor::populateDescriptorAligned | ( | uint8_t * | image, |
int | x, | ||
int | y, | ||
uint8_t * | descriptor | ||
) | const |
Computes a single descriptor. Assumes that the output parameter descriptor
is 16-byte aligned.
Definition at line 92 of file intensity_descriptor.cpp.
void fovis::IntensityDescriptorExtractor::populateDescriptorInterp | ( | uint8_t * | image, |
float | x, | ||
float | y, | ||
uint8_t * | descriptor | ||
) | const |
Computes a single descriptor using bilinear interpolation at every point on the descriptor. This performs 4 floating point multiplications for every pixel in the descriptor.
Assumes that the output parameter is
16-byte aligned.
Definition at line 61 of file intensity_descriptor.cpp.
void fovis::IntensityDescriptorExtractor::populateDescriptorsAligned | ( | uint8_t * | image, |
const KeypointData * | keypoints, | ||
int | num_keypoints, | ||
uint8_t * | descriptors | ||
) | const |
Compute many descriptors.
image | input image used for descriptor computation. |
keypoints | keypoints for descriptor computation. |
num_keypoints | the number of keypoints. |
descriptors | Must be 16-byte aligned and pre-allocated to num_keypoints * 16 * getDescriptorStride() bytes. |
Definition at line 158 of file intensity_descriptor.cpp.
void fovis::IntensityDescriptorExtractor::populateDescriptorsInterp | ( | uint8_t * | image, |
const KeypointData * | keypoints, | ||
int | num_keypoints, | ||
uint8_t * | descriptors | ||
) | const |
Compute many descriptors using bilinear interpolation.
image | input image used for descriptor computation. |
keypoints | keypoints for descriptor computation. |
num_keypoints | the number of keypoints. |
descriptors | Must be 16-byte aligned and pre-allocated to num_keypoints * 16 * getDescriptorStride() bytes. |
Definition at line 144 of file intensity_descriptor.cpp.
Definition at line 117 of file intensity_descriptor.hpp.
uint8_t* fovis::IntensityDescriptorExtractor::_descriptor_brightness_offset [private] |
Definition at line 116 of file intensity_descriptor.hpp.
Definition at line 122 of file intensity_descriptor.hpp.
int fovis::IntensityDescriptorExtractor::_descriptor_len [private] |
Definition at line 119 of file intensity_descriptor.hpp.
int fovis::IntensityDescriptorExtractor::_descriptor_stride [private] |
Definition at line 121 of file intensity_descriptor.hpp.
Definition at line 120 of file intensity_descriptor.hpp.
Definition at line 115 of file intensity_descriptor.hpp.
int fovis::IntensityDescriptorExtractor::_raw_gray_stride [private] |
Definition at line 113 of file intensity_descriptor.hpp.