#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