LoginSignup
6
12

More than 1 year has passed since last update.

難しくないRustで画像表示そして画像認識(Rust+PyTorch)

Posted at

Rust言語は難しいと思われているが、実際使ってみると実用的な優れた言語だと思う。
初心者殺しに会わないように、簡単にWindows表示ができて、描画、画像表示、画像認識ができるプログラムを紹介する。
RustでWindowを作成して、画像表示、描画をしたい、キーボードやマウスも操作したいとなると、標準のimage クレートではそこまでできない。
そこで適当なクレートを探そうとしても、多すぎて見つけるのが困難だ。そういう人にこの記事が参考になると嬉しい。
show-imageクレートを使うと、Window作成とキーボード操作が簡単になる。
分かりやすいように、エラー処理は省いている。プログラムは以下の様な感じになる。

show_image.rs
use show_image::{ImageView, ImageInfo, create_window};
#[show_image::main]
fn main() -> Result<(), Box<dyn std::error::Error>> {
 // 事前にpixel_dataに画像をロードする
  let image = ImageView::new(ImageInfo::rgb8(1920, 1080), pixel_data);
  // Windowを作成して画像を表示
  let window = create_window("image", Default::default());
  window.set_image("image-001", image);
// ESCキーが押されたら終了
for event in window.event_channel() {
  if let event::WindowEvent::KeyboardInput(event) = event {
        println!("{:#?}", event);
        if event.input.key_code == Some(event::VirtualKeyCode::Escape) && event.input.state.is_pressed() {
            break;
        }
    } 
}
Ok(()) 
}

このshow-imageを使ってマンデルブロー・ナビゲータを作るとこうなる。
今回はWebAssembly は使ってないので、より高速な処理が可能になった。
mandel.png

6
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
12