image_viewer/
image_viewer.rs

1use opencv::highgui;
2use cv_bridge::{
3    CvImage,
4    msgs::sensor_msgs::Image,
5};
6
7fn main() {
8    // Initialize ros node
9    rosrust::init("image_viewer");
10
11    // Create image subscriber
12    let _subscriber_raii = rosrust::subscribe(
13        "/camera/image_raw",
14        5,
15        move |image: Image| {
16            // Convert ros Image to opencv Mat
17            let mut cv_image = CvImage::from_imgmsg(image).expect("failed to construct CvImage from ros Image"); 
18            let mat = cv_image.as_cvmat().expect("failed to convert CvImage to Mat");
19
20            // Display image
21            let window = "view";
22            highgui::named_window(window, highgui::WINDOW_AUTOSIZE).unwrap();
23            highgui::imshow(window, &mat).unwrap();
24            highgui::wait_key(1).unwrap();
25        }
26    );
27
28    rosrust::spin();
29}