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;