cv_bridge/lib.rs
1#![doc(html_favicon_url = "https://omkarkabadagi5823.github.io/cv_bridge/logo.ico")]
2#![doc(html_logo_url = "https://omkarkabadagi5823.github.io/cv_bridge/logo.png")]
3//! `cv-bridge` is a crate for converting between OpenCV and ROS Image.
4//! This works in conjunction to the [`ros_rust`](https://github.com/adnanademovic/rosrust) crate.
5//!
6//! # Crate Status
7//! - Currently only supports the standard CV encodings
8//! - Currently only supports CV_8U and CV_16U channel depths
9//! - Does not support compressed images
10//!
11//! # Examples
12//!
13//! ## Convert from ROS Image to OpenCV Mat
14//! ```
15//! use opencv::highgui;
16//! use cv_bridge::{
17//! CvImage,
18//! msgs::sensor_msgs::Image,
19//! };
20
21//! fn main() {
22//! // Initialize ros node
23//! rosrust::init("image_viewer");
24//!
25//! // Create image subscriber
26//! let _subscriber_raii = rosrust::subscribe(
27//! "/camera/image_raw",
28//! 5,
29//! move |image: Image| {
30//! // Convert ros Image to opencv Mat
31//! let mut cv_image = CvImage::from_imgmsg(image).expect("failed to construct CvImage from ros Image");
32//! let mat = cv_image.as_cvmat().expect("failed to convert CvImage to Mat");
33//!
34//! // Display image
35//! let window = "view";
36//! highgui::named_window(window, highgui::WINDOW_AUTOSIZE).unwrap();
37//! highgui::imshow(window, &mat).unwrap();
38//! highgui::wait_key(1).unwrap();
39//! }
40//! );
41
42//! rosrust::spin();
43//! }
44//! ```
45
46pub mod msgs;
47pub mod cv_image;
48pub mod utils;
49
50pub use cv_image::CvImage;