Estimate pose of the tag using the homography method described in [1].
@outparam pose
Estimate tag pose.
This method is an easier to use interface to 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.
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.
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.
Creates an exact copy of the supplied matrix ‘m’. It is the caller’s
responsibility to call matd_destroy() on the returned matrix.
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.
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.
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.
Creates a scalar with the supplied value ‘v’. It is the caller’s responsibility
to call matd_destroy() on the returned matrix.
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.
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.
Calculates the determinant of the supplied matrix ‘a’.
Retrieves the cell value for matrix ‘m’ at the given zero-based row and column index.
Performs more thorough validation checking than MATD_EL().
Retrieves the scalar value of the given element (‘m’ must be a scalar).
Performs more thorough validation checking than MATD_EL().
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.
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).
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.
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.
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.
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.
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().
Assigns the given value to the supplied scalar element (‘m’ must be a scalar).
Performs more thorough validation checking than MATD_EL().
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.
Scales all cell values of matrix ‘a’ by the given scale factor ‘s’ and
overwrites the contents of ‘a’ with the results.
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.
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.
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.
Compute a complete SVD of a matrix. The SVD exists for all
matrices. For a matrix MxN, we will have:
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.
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).
Same as matd_vec_dist, but only uses the first ‘n’ terms to compute distance
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).
Calculates the magnitude of the supplied matrix ‘a’.
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.
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: