simple_image_interface

Crates.iosimple_image_interface
lib.rssimple_image_interface
version0.1.6
sourcesrc
created_at2021-09-05 09:55:13.730805
updated_at2024-01-14 15:05:50.668927
descriptionSimple image interface with pictures, video, and camera.
homepage
repositoryhttps://github.com/scepter914/simple_image_interface
max_upload_size
id447089
size41,770
Satoshi Tanaka (scepter914)

documentation

https://docs.rs/simple_image_interface

README

simple_image_interface

  • This repository is simple image interface library for rust.
    • If you use this library, you can change easily between images, videos, and camera input.
    • It may be useful for debug like robotics vision area.
  • Support image interface
    • Camera
      • Web Camera (v4l2)
      • Realsense
      • Basler Camera
    • Video
      • mp4
    • Image
      • png
      • jpeg

Document

Get started

Install

  • Install for rscam
sudo apt install libv4l-dev
  • Install for ffmpeg-next
sudo apt install -y clang libavcodec-dev libavformat-dev libavutil-dev pkg-config libavdevice-dev
  • Cargo.toml
"simple_image_interface" = "0.1.6"

Example code

use simple_image_interface::simple_image_interface::SimpleImageInterface;

fn main() {
    if args.len() < 2 || &args[1] == "pic" {
        interface = SimpleImageInterface::new_picture("./data/from_raw.png");
    } else if &args[1] == "video" {
        interface = SimpleImageInterface::new_video("./data/random_ball.mp4");
    } else {
        interface = SimpleImageInterface::new_camera("/dev/video0", 640, 360, 330);
        // width, height, fps
    }

    let mut frame_index = 0;
    loop {
        frame_index += 1;
        let input_image = interface.get_frame();
        if input_image.is_none() {
            break;
        }
        my_image_proc(&input_image.unwrap(), frame_index);
    }
}
  • Example code execution
# Run for picture
cargo run --release --example example pic

# Run for video
cargo run --release --example example video

Note

  • Not use trait object but lapper struct to improve execution speed

History

Reference

Commit count: 56

cargo fmt