Skip to the content.
English 한국어 日本語 Tiếng Việt

Crystal サンプル

https://github.com/bobhyun/TS-ANPR/tree/main/examples/Crystal/anpr

1. エンジンファイルのコピー

[注意] このサンプルでは、他のサンプルと共有するためにエンジンファイルを examples/bin/ディレクトリに展開します。ただし、実際のデプロイメントでは、通常、アプリケーションの実行ファイルが配置されているディレクトリにエンジンファイルをコピーします。

2. 前提条件

  1. Crystal のインストール(バージョン 1.0.0 以降推奨)

    Windows:

    # Scoop を使用
    scoop install crystal
    
    # または https://crystal-lang.org/install/on_windows/ からダウンロード
    

    Linux:

    # Ubuntu/Debian
    curl -fsSL https://crystal-lang.org/install.sh | sudo bash
    
    # またはパッケージマネージャーを使用
    sudo apt-get install crystal
    
  2. インストールの確認

    crystal --version
    

3. 実行方法

  1. Crystal サンプルディレクトリに移動

    cd Crystal/anpr
    
  2. 依存関係のインストール

    # 必要な shard のインストール(画像デコード用の StumpyPNG と StumpyJPEG)
    shards install
    

    Windows 注意事項: Shards はシンボリックリンクが必要です。シンボリックリンクエラーが発生した場合、2 つのオプションがあります:

    • オプション 1(推奨): Windows 設定で開発者モードを有効にする
      • 設定 → プライバシーとセキュリティ → 開発者向け → 開発者モード → オン
      • 参照: https://learn.microsoft.com/ja-jp/windows/apps/get-started/enable-your-device-for-development
    • オプション 2: PowerShell またはコマンドプロンプトを管理者として実行
      # 管理者として実行
      shards install
      
  3. サンプルの実行

    Shards を使用(推奨):

    # ビルドと実行
    shards build
    ./bin/anpr
    
    # 最適化付きでビルド
    shards build --release
    

    直接コンパイル:

    # 直接実行
    crystal run anpr.cr
    
    # またはコンパイル後実行
    crystal build anpr.cr
    ./anpr
    
    # 最適化付きでコンパイル
    crystal build --release anpr.cr
    

4. 注意事項

5. 機能

6. 画像処理方法

このサンプルは、3 つの異なる方法で画像を処理する方法を示しています:

  1. read_image_file: anpr_read_fileを使用した直接ファイル処理(最速の方法)
  2. read_encoded_image: ピクセル形式 “encoded” でエンコードされた画像バイトを渡す
  3. read_pixel_buffer: StumpyPNG/StumpyJPEG を使用して生 RGB ピクセルデータにデコードしてからanpr_read_pixelsに渡す
    • PNG ファイル: StumpyPNG を使用してデコード
    • JPEG ファイル: StumpyJPEG を使用してデコードし、デコード失敗時は自動的にエンコード形式にフォールバック

方法を切り替えるには、コード内のanpr_func変数を変更してください:

# 次のいずれかを選択:
anpr_func = ->read_image_file(TSANPR, String, String, String)
# anpr_func = ->read_encoded_image(TSANPR, String, String, String)
# anpr_func = ->read_pixel_buffer(TSANPR, String, String, String)

注意: read_pixel_buffer関数は JPEG デコード失敗を自動的に処理し、エンコード形式にフォールバックすることで、さまざまな JPEG バリアントで確実に動作します。

7. API リファレンス

TSANPR クラス

TSANPRクラスは以下のメソッドを提供します:

コンストラクタ:

コアメソッド:

認識オプション

出力形式

7. トラブルシューティング

ライブラリ読み込みの問題:

コンパイルの問題:

プラットフォーム固有の問題: