[][src]Crate apriltag_sys

Structs

__IncompleteArrayField
__pthread_internal_list
__pthread_mutex_s
apriltag_detection
apriltag_detection_info_t
apriltag_detector
apriltag_family
apriltag_pose_t
apriltag_quad_thresh_params
image_f32
image_u8
image_u8_lut
image_u8x3
image_u8x4
matd_chol_t
matd_plu_t
matd_svd_t
matd_t

Defines a matrix structure for holding double-precision values with data in row-major order (i.e. index = row*ncols + col).

timeprofile
workerpool
zarray

Functions

apriltag_detection_destroy
apriltag_detections_destroy
apriltag_detector_add_family_bits
apriltag_detector_clear_families
apriltag_detector_create
apriltag_detector_destroy
apriltag_detector_detect
apriltag_detector_remove_family
apriltag_to_image
estimate_pose_for_tag_homography

Estimate pose of the tag using the homography method described in [1]. @outparam pose

estimate_tag_pose

Estimate tag pose. This method is an easier to use interface to estimate_tag_pose_orthogonal_iteration.

estimate_tag_pose_orthogonal_iteration

Estimate pose of the tag. This returns one or two possible poses for the tag, along with the object-space error of each.

image_u8_clear
image_u8_convolve_2D
image_u8_copy
image_u8_create
image_u8_create_alignment
image_u8_create_from_f32
image_u8_create_from_pnm
image_u8_create_from_pnm_alignment
image_u8_create_stride
image_u8_darken
image_u8_decimate
image_u8_destroy
image_u8_draw_annulus
image_u8_draw_circle
image_u8_draw_line
image_u8_fill_line_max
image_u8_gaussian_blur
image_u8_rotate
image_u8_write_pnm
matd_add

Adds the two supplied matrices together, cell-by-cell, and returns the results as a new matrix of the same dimensions. The supplied matrices must have identical dimensions. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_add_inplace

Adds the values of 'b' to matrix 'a', cell-by-cell, and overwrites the contents of 'a' with the results. The supplied matrices must have identical dimensions.

matd_chol
matd_chol_destroy
matd_chol_inverse
matd_chol_solve
matd_copy

Creates an exact copy of the supplied matrix 'm'. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_create

Creates a double matrix with the given number of rows and columns (or a scalar in the case where rows=0 and/or cols=0). All data elements will be initialized to zero. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_create_data

Creates a double matrix with the given number of rows and columns (or a scalar in the case where rows=0 and/or cols=0). All data elements will be initialized using the supplied array of data, which must contain at least rowscols elements, arranged in row-major order (i.e. index = rowncols + col). It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_create_dataf

Creates a double matrix with the given number of rows and columns (or a scalar in the case where rows=0 and/or cols=0). All data elements will be initialized using the supplied array of float data, which must contain at least rowscols elements, arranged in row-major order (i.e. index = rowncols + col). It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_create_scalar

Creates a scalar with the supplied value 'v'. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_crossproduct

Calculates the cross product of supplied matrices 'a' and 'b' (i.e. a x b) and returns it as a new matrix. Both 'a' and 'b' must be vectors of dimension 3, but can be either row or column vectors. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_destroy

Frees the memory associated with matrix 'm', being the result of an earlier call to a matd_*() function, after which 'm' will no longer be usable.

matd_det

Calculates the determinant of the supplied matrix 'a'.

matd_err_inf
matd_get

Retrieves the cell value for matrix 'm' at the given zero-based row and column index. Performs more thorough validation checking than MATD_EL().

matd_get_scalar

Retrieves the scalar value of the given element ('m' must be a scalar). Performs more thorough validation checking than MATD_EL().

matd_identity

Creates a square identity matrix with the given number of rows (and therefore columns), or a scalar with value 1 in the case where dim=0. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_inverse

Attempts to compute an inverse of the supplied matrix 'a' and return it as a new matrix. This is strictly only possible if the determinant of 'a' is non-zero (matd_det(a) != 0).

matd_ltransposetriangle_solve
matd_ltriangle_solve
matd_max
matd_multiply

Multiplies the two supplied matrices together (matrix product), and returns the results as a new matrix. The supplied matrices must have dimensions such that columns(a) = rows(b). The returned matrix will have a row count of rows(a) and a column count of columns(b). It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_op

Creates a new matrix by applying a series of matrix operations, as expressed in 'expr', to the supplied list of matrices. Each matrix to be operated upon must be represented in the expression by a separate matrix placeholder, 'M', and there must be one matrix supplied as an argument for each matrix placeholder in the expression. All rules and caveats of the corresponding matrix operations apply to the operated-on matrices. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_plu
matd_plu_destroy
matd_plu_det
matd_plu_l
matd_plu_p
matd_plu_solve
matd_plu_u
matd_print

Prints the supplied matrix 'm' to standard output by applying the supplied printf format specifier 'fmt' for each individual element. Each row will be printed on a separate newline.

matd_print_transpose

Prints the transpose of the supplied matrix 'm' to standard output by applying the supplied printf format specifier 'fmt' for each individual element. Each row will be printed on a separate newline.

matd_put

Assigns the given value to the matrix cell at the given zero-based row and column index. Performs more thorough validation checking than MATD_EL().

matd_put_scalar

Assigns the given value to the supplied scalar element ('m' must be a scalar). Performs more thorough validation checking than MATD_EL().

matd_scale

Scales all cell values of matrix 'a' by the given scale factor 's' and returns the result as a new matrix of the same dimensions. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_scale_inplace

Scales all cell values of matrix 'a' by the given scale factor 's' and overwrites the contents of 'a' with the results.

matd_select

Creates a copy of a subset of the supplied matrix 'a'. The subset will include rows 'r0' through 'r1', inclusive ('r1' >= 'r0'), and columns 'c0' through 'c1', inclusive ('c1' >= 'c0'). All parameters are zero-based (i.e. matd_select(a, 0, 0, 0, 0) will return only the first cell). Cannot be used on scalars or to extend beyond the number of rows/columns of 'a'. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_solve
matd_subtract

Subtracts matrix 'b' from matrix 'a', cell-by-cell, and returns the results as a new matrix of the same dimensions. The supplied matrices must have identical dimensions. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_subtract_inplace

Subtracts the values of 'b' from matrix 'a', cell-by-cell, and overwrites the contents of 'a' with the results. The supplied matrices must have identical dimensions.

matd_svd

Compute a complete SVD of a matrix. The SVD exists for all matrices. For a matrix MxN, we will have:

matd_svd_flags
matd_transpose

Creates a matrix which is the transpose of the supplied matrix 'a'. It is the caller's responsibility to call matd_destroy() on the returned matrix.

matd_utriangle_solve
matd_vec_dist

Calculates the magnitude of the distance between the points represented by matrices 'a' and 'b'. Both 'a' and 'b' must be vectors and have the same dimension (although one may be a row vector and one may be a column vector).

matd_vec_dist_n

Same as matd_vec_dist, but only uses the first 'n' terms to compute distance

matd_vec_dot_product

Calculates the dot product of two vectors. Both 'a' and 'b' must be vectors and have the same dimension (although one may be a row vector and one may be a column vector).

matd_vec_mag

Calculates the magnitude of the supplied matrix 'a'.

matd_vec_normalize

Calculates the normalization of the supplied vector 'a' (i.e. a unit vector of the same dimension and orientation as 'a' with a magnitude of 1) and returns it as a new vector. 'a' must be a vector of any dimension and must have a non-zero magnitude. It is the caller's responsibility to call matd_destroy() on the returned matrix.

tag16h5_create
tag16h5_destroy
tag25h9_create
tag25h9_destroy
tag36h11_create
tag36h11_destroy
tagCircle21h7_create
tagCircle21h7_destroy
tagCircle49h12_create
tagCircle49h12_destroy
tagCustom48h12_create
tagCustom48h12_destroy
tagStandard41h12_create
tagStandard41h12_destroy
tagStandard52h13_create
tagStandard52h13_destroy
zarray_vmap

Calls the supplied function for every element in the array in index order. HOWEVER values are passed to the function, not pointers to values. In the case where the zarray stores object pointers, zarray_vmap allows you to pass in the object's destroy function (or free) directly. Can only be used with zarray's which contain pointer data. The map function should have the following format:

Type Definitions

__int32_t
__int64_t
__pthread_list_t
__uint8_t
__uint32_t
__uint64_t
apriltag_detection_t
apriltag_detector_t
apriltag_family_t
image_f32_t
image_u8_lut_t
image_u8_t
image_u8x3_t
image_u8x4_t
size_t
timeprofile_t
workerpool_t
zarray_t

Defines a structure which acts as a resize-able array ala Java's ArrayList.

Unions

pthread_mutex_t