5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クソアプリAdvent Calendar 2024

Day 18

RustとWebAssemblyでCheckBoxVideo作ってみた

Posted at

はじめに

前回、WebCameraの映像をAsciiアート風に変換するツールを作ってみたので

それと似た発想でセル上に並べられたCheckBoxに映像を出力してみる。

参考記事

プロジェクトの作成

大まかな手順としては大まかな手順としては上記の参考記事と全く同じ。

入力映像をグレースケール化し、

指定されたドットサイズでセルに分割して、

各セルを黒の比率によってCheckBoxの値となるBoolの配列を返す。

CheckBoxの値の設定

セル単位で黒の比率が0.4より大きければ、trueを返し、

それ以外は、falseを返す。

lib.rs

fn analyze_cell(cell: &[u8]) -> bool {
    let black_pixels = cell.chunks(4)
        .filter(|p| p[0] < 128 && p[1] < 128 && p[2] < 128 && p[3] > 0)
        .count();

    let total_pixels = cell.len() / 4;
    let black_ratio = black_pixels as f32 / total_pixels as f32;

    if black_ratio > 0.4 {
        true
    } else {
        false
    }
}

その他の処理は前回のソースと同じです。

とりあえず完成!

今回の成果物

デモURL

デモ動画

RustとWebAssemblyでCheckBoxVideo作ってみた.jpg

デモ画像

RustとWebAssemblyでCheckBoxVideo作ってみた.gif

ソース

まとめ

今回は入力映像をCheckBoxの映像にしてみた。

もし、照明やカメラの環境で

CheckBoxの映像が潰れてしまう場合は

グレースケールの設定やセルの黒の比率を変更すると

よりメリハリがつくと思います。

※間違い等ありましたら、ご指摘いただけると助かります。

5
0
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
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?