simple_image_interface 0.1.5

Simple image interface with pictures, video, and camera.
Documentation
# 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
    - [x] Web Camera (v4l2)
    - [ ] Realsense
    - [ ] Basler Camera
  - Video
    - [x] mp4
  - Image
    - [x] png
    - [x] jpeg

## Document

- [crates.io]https://crates.io/crates/simple_image_interface
- [docs.rs]https://docs.rs/simple_image_interface/0.1.0/simple_image_interface/

## Get started

- 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
```

- Cargo.toml

```
"simple_image_interface" = "0.1.5"
```

- Make interface
  - In detail, [See example code]example/examples.rs

```rust
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);
    }
}
```

## Note

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

## History

- v0.1.5
  - refactoring
  - \[caution!!\] Change module architecture
- v0.1.4
  - rename repository name
- v0.1.3
  - refactoring
- v0.1.2
  - [Reduce crate size]https://github.com/scepter914/simple-image-interface/pull/1
- v0.1.1
  - fix bug
- v0.1.0
  - publish initial library

## Reference

- <https://github.com/loyd/rscam> : Use for Camera input
- <https://github.com/zmwangx/rust-ffmpeg> : Use for Video input