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 <errno.h>
#include "common/image_u8.h"
#include "common/image_u8x3.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/debug_print.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 APRILTAG_U64_ONE   ((uint64_t) 1)
 

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_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)
 
static void graymodel_add (struct graymodel *gm, double x, double y, double gray)
 
static void graymodel_init (struct graymodel *gm)
 
static double graymodel_interpolate (struct graymodel *gm, double x, double y)
 
static void graymodel_solve (struct graymodel *gm)
 
static matd_thomography_compute2 (double c[4][4])
 
static int prefer_smaller (int pref, double q0, double q1)
 
static struct quadquad_copy (struct quad *quad)
 
static float quad_decode (apriltag_detector_t *td, 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)
 
static void quad_destroy (struct quad *quad)
 
static int quad_update_homographies (struct quad *quad)
 
static 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)
 
static void quick_decode_init (apriltag_family_t *family, int maxhamming)
 
static 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, int numBits)
 
static void sharpen (apriltag_detector_t *td, double *values, int size)
 
static double value_for_pixel (image_u8_t *im, double px, double py)
 

Macro Definition Documentation

◆ APRILTAG_U64_ONE

#define APRILTAG_U64_ONE   ((uint64_t) 1)

Definition at line 72 of file apriltag.c.

Function Documentation

◆ apriltag_detection_destroy()

void apriltag_detection_destroy ( apriltag_detection_t det)

Definition at line 979 of file apriltag.c.

◆ apriltag_detections_destroy()

void apriltag_detections_destroy ( zarray_t detections)

Definition at line 1415 of file apriltag.c.

◆ apriltag_detector_add_family_bits()

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

Definition at line 339 of file apriltag.c.

◆ apriltag_detector_clear_families()

void apriltag_detector_clear_families ( apriltag_detector_t td)

Definition at line 347 of file apriltag.c.

◆ apriltag_detector_create()

apriltag_detector_t* apriltag_detector_create ( )

Definition at line 357 of file apriltag.c.

◆ apriltag_detector_destroy()

void apriltag_detector_destroy ( apriltag_detector_t td)

Definition at line 391 of file apriltag.c.

◆ apriltag_detector_detect()

zarray_t* apriltag_detector_detect ( apriltag_detector_t td,
image_u8_t im_orig 
)

Definition at line 1002 of file apriltag.c.

◆ apriltag_detector_remove_family()

void apriltag_detector_remove_family ( apriltag_detector_t td,
apriltag_family_t fam 
)

Definition at line 333 of file apriltag.c.

◆ apriltag_quad_thresh()

zarray_t* apriltag_quad_thresh ( apriltag_detector_t td,
image_u8_t im 
)

Definition at line 1770 of file apriltag_quad_thresh.c.

◆ apriltag_to_image()

image_u8_t* apriltag_to_image ( apriltag_family_t fam,
int  idx 
)

Definition at line 1427 of file apriltag.c.

◆ detection_compare_function()

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

Definition at line 325 of file apriltag.c.

◆ graymodel_add()

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

Definition at line 96 of file apriltag.c.

◆ graymodel_init()

static void graymodel_init ( struct graymodel gm)
static

Definition at line 91 of file apriltag.c.

◆ graymodel_interpolate()

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

Definition at line 117 of file apriltag.c.

◆ graymodel_solve()

static void graymodel_solve ( struct graymodel gm)
static

Definition at line 112 of file apriltag.c.

◆ homography_compute2()

static matd_t* homography_compute2 ( double  c[4][4])
static

Definition at line 424 of file apriltag.c.

◆ prefer_smaller()

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

Definition at line 988 of file apriltag.c.

◆ quad_copy()

static struct quad* quad_copy ( struct quad quad)
static

Definition at line 163 of file apriltag.c.

◆ quad_decode()

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

Definition at line 568 of file apriltag.c.

◆ quad_decode_task()

static void quad_decode_task ( void *  _u)
static

Definition at line 891 of file apriltag.c.

◆ quad_destroy()

static void quad_destroy ( struct quad quad)
static

Definition at line 153 of file apriltag.c.

◆ quad_update_homographies()

static int quad_update_homographies ( struct quad quad)
static

Definition at line 487 of file apriltag.c.

◆ quick_decode_add()

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

Definition at line 174 of file apriltag.c.

◆ quick_decode_codeword()

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

Definition at line 297 of file apriltag.c.

◆ quick_decode_init()

static void quick_decode_init ( apriltag_family_t family,
int  maxhamming 
)
static

Definition at line 198 of file apriltag.c.

◆ quick_decode_uninit()

static void quick_decode_uninit ( apriltag_family_t fam)
static

Definition at line 187 of file apriltag.c.

◆ refine_edges()

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

Definition at line 742 of file apriltag.c.

◆ rotate90()

static uint64_t rotate90 ( uint64_t  w,
int  numBits 
)
static

Assuming we are drawing the image one quadrant at a time, what would the rotated image look like? Special care is taken to handle the case where there is a middle pixel of the image.

Definition at line 140 of file apriltag.c.

◆ sharpen()

static void sharpen ( apriltag_detector_t td,
double *  values,
int  size 
)
static

Definition at line 535 of file apriltag.c.

◆ value_for_pixel()

static double value_for_pixel ( image_u8_t im,
double  px,
double  py 
)
static

Definition at line 519 of file apriltag.c.



apriltag
Author(s): Edwin Olson , Max Krogius
autogenerated on Mon Jun 26 2023 02:26:35