cv-bridge

Crates.iocv-bridge
lib.rscv-bridge
version0.3.3
sourcesrc
created_at2022-12-18 09:42:47.542212
updated_at2023-02-11 17:58:12.049969
descriptionRust implemenation of cv_bridge that converts between ROS image messages and OpenCV images
homepage
repositoryhttps://github.com/OmkarKabadagi5823/cv-bridge-rs.git
max_upload_size
id740313
size100,856
Omkar Kabadagi (OmkarKabadagi5823)

documentation

https://docs.rs/cv-bridge

README

cv-bridge-rs

Crates.io Docs.rs

Rust implemenation of cv_bridge that converts between ROS image messages and OpenCV images

Warning: This package is still under active development. Use at your own risk.

Getting Started

Adding cv_bridge to your project

Add the following to your Cargo.toml file under dependencies:

[dependencies]
cv-bridge = "0.3.3"

or you can use cargo to add the dependency:

cargo add cv_bridge

Converting between ROS image messages and OpenCV images

use opencv::highgui;
use cv_bridge::{
    CvImage,
    msgs::sensor_msgs::Image,
};

fn main() {
    // Initialize ros node
    rosrust::init("image_viewer");

    // Create image subscriber
    let _subscriber_raii = rosrust::subscribe(
        "/camera/image_raw",
        5,
        move |image: Image| {
            // Convert ros Image to opencv Mat
            let mut cv_image = CvImage::from_imgmsg(image).expect("failed to construct CvImage from ros Image"); 
            let mat = cv_image.as_cvmat().expect("failed to convert CvImage to Mat");

            // Display image
            let window = "view";
            highgui::named_window(window, highgui::WINDOW_AUTOSIZE).unwrap();
            highgui::imshow(window, &mat).unwrap();
            highgui::wait_key(1).unwrap();
        }
    );

    rosrust::spin();
}

Features

  • Covert to and from sensor_msgs/Image and opencv::core::Mat
  • Support for various encodings defined by sensor_msgs: image_encodings.h crate
  • Support for 8-bit and 16-bit depth channels
  • Support for 32-bit and 64-bit depth channels
  • Documentation and examples
  • Covert to and from sensor_msgs/CompressedImage and opencv::core::Mat
Commit count: 15

cargo fmt