Shipment Verification

目的

このプログラムの目的は、コンテナ内の箱の数を数え、それぞれにストライプのマークを付けることです。

Input

コンテナ内の箱のイメージ

Output

検出されたボックスとその数

ヒント

この目標を達成する最も簡単かつ迅速な方法は、1D Edge Detection技術を使用してボックスをストライプとして検出することです。

接続のラベル付けについては こちらを参照ください。

Solution (AVS)

  1. LoadImageフィルターを追加します。フィルターのプロパティウィンドウで画像にディレクトリを設定することを思い出してください。
  2. ScanMultipleStripesフィルタを追加します。
  3. 最初のoutImageフィルタを2番目のinImageフィルター接続します。
  4. ScanMultipleStripesをクリックします。プロパティウィンドウ(左下)で以下のように変更します。
    • すべてのボックスを含むように、inScanPathで水平方向のスキャンパスを定義します。
    • inStripeScanParams.MinMagnitude10に設定します。これは、明るいストライプと暗いギャップの間の遷移のおおよその最小値です。
    • 明るいストライプを見つけたいため、inStripeScanParams.StripePolarityBrightに設定します。
    • inStripeScanParams.MinStripeWidth40に設定します。ボックスの幅は約42~43なので、これは下限として無難な数値なので設定します。
    • inStripeScanParams.MaxStripeWidth50に設定します。これは上限として無難な数値です。これがないと幅の広いストライプが検出される可能性があります。
  5. outStripesを右クリックし、Property outputsを見つけて、outStripes.Countを選択します。

マクロフィルタ メイン

使用したフィルタ

アイコン 名前 説明
ScanMultipleStripes 対向するエッジの複数のペアを非常に高速に検出します - 通常はカウントまたは幅の測定に使用されます。
LoadImage ファイルから単一の画像を読み込みます。

その他の資料

  • 1D Edge Detection - エッジ検出フィルターがどのように機能するかを説明しています。