forked from icoderaven/apriltag2_catkin
-
Notifications
You must be signed in to change notification settings - Fork 0
gklz1982/apriltag2_catkin
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A simple catkin wrapper for the new AprilTag2 library available at https://april.eecs.umich.edu/software/apriltag.html EXAMPLE ===== A basic AprilTag application can be seen in https://github.com/icoderaven/apriltag2_ros USAGE ==== Initialization: instantiate a detector and at least one tag family. apriltag_detector_t *td = apriltag_detector_create(); apriltag_family_t *tf = tag36h11_create(); apriltag_detector_add_family(td, tf); Some tag detector parameters can be set at this time. The default parameters are the recommended starting point. td->quad_decimate = 1.0; td->quad_sigma = 0.0; td->refine_edges = 1; td->refine_decode = 0; td->refine_pose = 0; Increase the image decimation if faster processing is required; the trade-off is a slight decrease in detection range. A factor of 1.0 means the full-size input image is used. Some Gaussian blur (quad_sigma) may help with noisy input images. Detection: a single one-line call will process an input image and return a list of detections. zarray_t *detections = apriltag_detector_detect(td, im); for (int i = 0; i < zarray_size(detections); i++) { apriltag_detection_t *det; zarray_get(detections, i, &det); // Do something with det here } apriltag_detections_destroy(detections); zarray is a container class which is included with apriltag. To process through the list of detections, use zarray_get, as illustrated above. The caller is responsible for freeing detections by calling apriltag_detections_destroy(). Cleanup: free the detector and tag family when done. apriltag_detector_destroy(td); tag36h11_destroy(tf); OPENCV INTEGRATION ================== Note that this library has no external dependencies. Most applications will require, at minimum, a method for acquiring images. See https://github.com/icoderaven/apriltag2_catkin for an example of using AprilTag in C++ with OpenCV and built with ROS Image data in a cv::Mat object can be passed to AprilTag without creating a deep copy. Simply create an image_u8_t header for the cv::Mat data buffer: cv::Mat img; image_u8_t img_header = { .width = img.cols, .height = img.rows, .stride = img.cols, .buf = img.data };
About
A catkin wrapper of the new AprilTag C++ library
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 97.9%
- C++ 1.1%
- Other 1.0%