#include <stdlib.h>

Go to the source code of this file.
Classes | |
| struct | hsm_buffer_struct |
| struct | hsm_params |
Typedefs | |
| typedef struct hsm_buffer_struct * | hsm_buffer |
Functions | |
| int | compare_descending (const void *index_pt1, const void *index_pt2) |
| hsm_buffer | hsm_buffer_alloc (struct hsm_params *) |
| void | hsm_buffer_free (hsm_buffer) |
| void | hsm_circular_cross_corr_stupid (int n, const double *a, const double *b, double *res) |
| void | hsm_compute_ht_base (hsm_buffer, const double base_pose[3]) |
| void | hsm_compute_ht_point (hsm_buffer, double x, double y, double weight) |
| void | hsm_compute_spectrum (hsm_buffer) |
| void | hsm_compute_spectrum_norm (hsm_buffer b) |
| void | hsm_find_local_maxima_circ (int n, const double *f, int *maxima, int *nmaxima) |
| void | hsm_find_local_maxima_linear (int n, const double *f, int *maxima, int *nmaxima) |
| void | hsm_find_peaks_circ (int n, const double *f, double min_angle_deg, int unidir, int max_peaks, int *peaks, int *npeaks) |
| void | hsm_find_peaks_linear (int n, const double *f, double min_dist, int max_peaks, int *peaks, int *npeaks) |
| void | hsm_generate_combinations (int nslots, const int possible_choices[], int i, int i_choice[]) |
| int | hsm_is_angle_between_smaller_than_deg (double angle1, double angle2, double threshold_deg) |
| void | hsm_linear_cross_corr_stupid (int na, const double *a, int nb, const double *b, double *res, int *lags, int min_lag, int max_lag) |
| void | hsm_match (struct hsm_params *p, hsm_buffer b1, hsm_buffer b2) |
| int | hsm_rho2index (hsm_buffer b, double rho, int *rho_index, double *alpha) |
| int | pos_mod (int a, int b) |
| void | qsort_descending (int *indexes, size_t nmemb, const double *values) |
| typedef struct hsm_buffer_struct* hsm_buffer |
| int compare_descending | ( | const void * | index_pt1, | |
| const void * | index_pt2 | |||
| ) |
| hsm_buffer hsm_buffer_alloc | ( | struct hsm_params * | ) |
Allocates the buffer structures. Remember to call hsm_buffer_free afterwards
| void hsm_buffer_free | ( | hsm_buffer | ) |
Frees the buffer structure
| void hsm_circular_cross_corr_stupid | ( | int | n, | |
| const double * | a, | |||
| const double * | b, | |||
| double * | res | |||
| ) |
Creates circular cross-correlation in a stupid way
| void hsm_compute_ht_base | ( | hsm_buffer | , | |
| const double | base_pose[3] | |||
| ) |
Private interface This adds a base displacement to the point added by hsm_compute_ht_point
| void hsm_compute_ht_point | ( | hsm_buffer | , | |
| double | x, | |||
| double | y, | |||
| double | weight | |||
| ) |
Adds a point to the Hough Transform
| void hsm_compute_spectrum | ( | hsm_buffer | ) |
Computes the spectrum in the buffer
| void hsm_compute_spectrum_norm | ( | hsm_buffer | b | ) |
| void hsm_find_local_maxima_circ | ( | int | n, | |
| const double * | f, | |||
| int * | maxima, | |||
| int * | nmaxima | |||
| ) |
Finds the local maxima for a circular function. is a pointer to a struct of size n returns the number of maxima found
| void hsm_find_local_maxima_linear | ( | int | n, | |
| const double * | f, | |||
| int * | maxima, | |||
| int * | nmaxima | |||
| ) |
| void hsm_find_peaks_circ | ( | int | n, | |
| const double * | f, | |||
| double | min_angle_deg, | |||
| int | unidir, | |||
| int | max_peaks, | |||
| int * | peaks, | |||
| int * | npeaks | |||
| ) |
Finds the peaks of a circular function of length
.
| void hsm_find_peaks_linear | ( | int | n, | |
| const double * | f, | |||
| double | min_dist, | |||
| int | max_peaks, | |||
| int * | peaks, | |||
| int * | npeaks | |||
| ) |
| void hsm_generate_combinations | ( | int | nslots, | |
| const int | possible_choices[], | |||
| int | i, | |||
| int | i_choice[] | |||
| ) |
| int hsm_is_angle_between_smaller_than_deg | ( | double | angle1, | |
| double | angle2, | |||
| double | threshold_deg | |||
| ) |
Returns true if (rad) and (rad) are closer than (degrees!)
| void hsm_linear_cross_corr_stupid | ( | int | na, | |
| const double * | a, | |||
| int | nb, | |||
| const double * | b, | |||
| double * | res, | |||
| int * | lags, | |||
| int | min_lag, | |||
| int | max_lag | |||
| ) |
| void hsm_match | ( | struct hsm_params * | p, | |
| hsm_buffer | b1, | |||
| hsm_buffer | b2 | |||
| ) |
| int hsm_rho2index | ( | hsm_buffer | b, | |
| double | rho, | |||
| int * | rho_index, | |||
| double * | alpha | |||
| ) |
Returns 0 if out of the buffer. rho_index is the closest cell, alpha between -0.5 and 0.5 specifies the distance from the center of the cell.
| int pos_mod | ( | int | a, | |
| int | b | |||
| ) |
| void qsort_descending | ( | int * | indexes, | |
| size_t | nmemb, | |||
| const double * | values | |||
| ) |
Sorts the indexes based on the values