Classes | Macros | Functions
apriltag.c File Reference
#include "apriltag.h"
#include <math.h>
#include <assert.h>
#include <stdint.h>
#include <string.h>
#include <stdio.h>
#include <inttypes.h>
#include <sys/time.h>
#include "common/image_u8.h"
#include "common/image_u8x3.h"
#include "common/zhash.h"
#include "common/zarray.h"
#include "common/matd.h"
#include "common/homography.h"
#include "common/timeprofile.h"
#include "common/math_util.h"
#include "common/g2d.h"
#include "common/floats.h"
#include "apriltag_math.h"
#include "common/postscript_utils.h"
Include dependency graph for apriltag.c:

Go to the source code of this file.

Classes

struct  evaluate_quad_ret
 
struct  graymodel
 
struct  quad_decode_task
 
struct  quick_decode
 
struct  quick_decode_entry
 

Macros

#define M_PI   3.141592653589793238462643383279502884196
 

Functions

void apriltag_detection_destroy (apriltag_detection_t *det)
 
void apriltag_detections_destroy (zarray_t *detections)
 
void apriltag_detector_add_family_bits (apriltag_detector_t *td, apriltag_family_t *fam, int bits_corrected)
 
void apriltag_detector_clear_families (apriltag_detector_t *td)
 
apriltag_detector_tapriltag_detector_create ()
 
void apriltag_detector_destroy (apriltag_detector_t *td)
 
zarray_tapriltag_detector_detect (apriltag_detector_t *td, image_u8_t *im_orig)
 
void apriltag_detector_remove_family (apriltag_detector_t *td, apriltag_family_t *fam)
 
zarray_tapriltag_quad_gradient (apriltag_detector_t *td, image_u8_t *im)
 
zarray_tapriltag_quad_thresh (apriltag_detector_t *td, image_u8_t *im)
 
image_u8_tapriltag_to_image (apriltag_family_t *fam, int idx)
 
static int detection_compare_function (const void *_a, const void *_b)
 
void graymodel_add (struct graymodel *gm, double x, double y, double gray)
 
void graymodel_init (struct graymodel *gm)
 
double graymodel_interpolate (struct graymodel *gm, double x, double y)
 
void graymodel_solve (struct graymodel *gm)
 
double optimize_quad_generic (apriltag_family_t *family, image_u8_t *im, struct quad *quad0, float *stepsizes, int nstepsizes, double(*score)(apriltag_family_t *family, image_u8_t *im, struct quad *quad, void *user), void *user)
 
int prefer_smaller (int pref, double q0, double q1)
 
struct quadquad_copy (struct quad *quad)
 
float quad_decode (apriltag_family_t *family, image_u8_t *im, struct quad *quad, struct quick_decode_entry *entry, image_u8_t *im_samples)
 
static void quad_decode_task (void *_u)
 
void quad_destroy (struct quad *quad)
 
double quad_goodness (apriltag_family_t *family, image_u8_t *im, struct quad *quad)
 
int quad_update_homographies (struct quad *quad)
 
void quick_decode_add (struct quick_decode *qd, uint64_t code, int id, int hamming)
 
static void quick_decode_codeword (apriltag_family_t *tf, uint64_t rcode, struct quick_decode_entry *entry)
 
void quick_decode_init (apriltag_family_t *family, int maxhamming)
 
void quick_decode_uninit (apriltag_family_t *fam)
 
static void refine_edges (apriltag_detector_t *td, image_u8_t *im_orig, struct quad *quad)
 
static uint64_t rotate90 (uint64_t w, uint32_t d)
 
double score_decodability (apriltag_family_t *family, image_u8_t *im, struct quad *quad, void *user)
 
double score_goodness (apriltag_family_t *family, image_u8_t *im, struct quad *quad, void *user)
 

Macro Definition Documentation

#define M_PI   3.141592653589793238462643383279502884196

Definition at line 59 of file apriltag.c.

Function Documentation

void apriltag_detection_destroy ( apriltag_detection_t det)

Definition at line 1071 of file apriltag.c.

void apriltag_detections_destroy ( zarray_t detections)

Definition at line 1493 of file apriltag.c.

void apriltag_detector_add_family_bits ( apriltag_detector_t td,
apriltag_family_t fam,
int  bits_corrected 
)

Definition at line 330 of file apriltag.c.

void apriltag_detector_clear_families ( apriltag_detector_t td)

Definition at line 338 of file apriltag.c.

apriltag_detector_t* apriltag_detector_create ( )

Definition at line 348 of file apriltag.c.

void apriltag_detector_destroy ( apriltag_detector_t td)

Definition at line 382 of file apriltag.c.

zarray_t* apriltag_detector_detect ( apriltag_detector_t td,
image_u8_t im_orig 
)

Definition at line 1094 of file apriltag.c.

void apriltag_detector_remove_family ( apriltag_detector_t td,
apriltag_family_t fam 
)

Definition at line 324 of file apriltag.c.

zarray_t* apriltag_quad_gradient ( apriltag_detector_t td,
image_u8_t im 
)
zarray_t* apriltag_quad_thresh ( apriltag_detector_t td,
image_u8_t im 
)

Definition at line 1510 of file apriltag_quad_thresh.c.

image_u8_t* apriltag_to_image ( apriltag_family_t fam,
int  idx 
)

Definition at line 1505 of file apriltag.c.

static int detection_compare_function ( const void *  _a,
const void *  _b 
)
inlinestatic

Definition at line 316 of file apriltag.c.

void graymodel_add ( struct graymodel gm,
double  x,
double  y,
double  gray 
)

Definition at line 85 of file apriltag.c.

void graymodel_init ( struct graymodel gm)

Definition at line 80 of file apriltag.c.

double graymodel_interpolate ( struct graymodel gm,
double  x,
double  y 
)

Definition at line 106 of file apriltag.c.

void graymodel_solve ( struct graymodel gm)

Definition at line 101 of file apriltag.c.

double optimize_quad_generic ( apriltag_family_t family,
image_u8_t im,
struct quad quad0,
float *  stepsizes,
int  nstepsizes,
double(*)(apriltag_family_t *family, image_u8_t *im, struct quad *quad, void *user)  score,
void *  user 
)

Definition at line 741 of file apriltag.c.

int prefer_smaller ( int  pref,
double  q0,
double  q1 
)

Definition at line 1080 of file apriltag.c.

struct quad* quad_copy ( struct quad quad)

Definition at line 161 of file apriltag.c.

float quad_decode ( apriltag_family_t family,
image_u8_t im,
struct quad quad,
struct quick_decode_entry entry,
image_u8_t im_samples 
)

Definition at line 567 of file apriltag.c.

static void quad_decode_task ( void *  _u)
static

Definition at line 958 of file apriltag.c.

void quad_destroy ( struct quad quad)

Definition at line 151 of file apriltag.c.

double quad_goodness ( apriltag_family_t family,
image_u8_t im,
struct quad quad 
)

Definition at line 456 of file apriltag.c.

int quad_update_homographies ( struct quad quad)

Definition at line 416 of file apriltag.c.

void quick_decode_add ( struct quick_decode qd,
uint64_t  code,
int  id,
int  hamming 
)

Definition at line 172 of file apriltag.c.

static void quick_decode_codeword ( apriltag_family_t tf,
uint64_t  rcode,
struct quick_decode_entry entry 
)
static

Definition at line 289 of file apriltag.c.

void quick_decode_init ( apriltag_family_t family,
int  maxhamming 
)

Definition at line 196 of file apriltag.c.

void quick_decode_uninit ( apriltag_family_t fam)

Definition at line 185 of file apriltag.c.

static void refine_edges ( apriltag_detector_t td,
image_u8_t im_orig,
struct quad quad 
)
static

Definition at line 816 of file apriltag.c.

static uint64_t rotate90 ( uint64_t  w,
uint32_t  d 
)
static

if the bits in w were arranged in a d*d grid and that grid was rotated, what would the new bits in w be? The bits are organized like this (for d = 3):

8 7 6 2 5 8 0 1 2 5 4 3 ==> 1 4 7 ==> 3 4 5 (rotate90 applied twice) 2 1 0 0 3 6 6 7 8

Definition at line 133 of file apriltag.c.

double score_decodability ( apriltag_family_t family,
image_u8_t im,
struct quad quad,
void *  user 
)

Definition at line 730 of file apriltag.c.

double score_goodness ( apriltag_family_t family,
image_u8_t im,
struct quad quad,
void *  user 
)

Definition at line 725 of file apriltag.c.



apriltags2
Author(s): Danylo Malyuta
autogenerated on Fri Oct 19 2018 04:02:33