EasyMatrixCode - データマトリックスコードの読み取り
![]() |
![]() |
データマトリックスコード(ECC 200、26x26セル) |
データマトリックスコードのファインダーパターン |
EasyMatrixCodeは、グレースケール2Dデータマトリックスコードをサイズ、コントラスト、ロケーション、方向に関係なく(透明な媒体の背面から見た画像も可)、一度の読み取り演算で検出、解読、デコードし、読み取って品質をランク付けします。ただし、以下の仕様を満たしていることが条件となります:
- 最小クワイエットゾーン(マトリックスコード周囲の黒のゾーン)幅:3ピクセル
- 最小セル(= モジュール)サイズ:3x3ピクセル
- 最大伸張(セルの幅と高さの比率):2
データマトリックスコードは損傷していても、誤り訂正システムによって読み取ることができます。

データマトリックスコードとは、文字列(数字、文字、特殊文字)を表す白と黒のセルを配列した正方形の2次元コードです。 できるだけ小さいサイズで最大限の情報を格納できるようにエンコードされています。 各セルは1ビットの情報に相当し、冗長ビットを追加することで劣化したシンボルの読み取りにも強力な誤り訂正が可能になります。
- コードの位置はファインダーパターンによって検出されます。データマトリックスコードの下端と左端は黒のセルのみで、上端と右端は白と黒のセルが交互に現れます。
- このコードには、論理サイズ(セルの数)、コントラストタイプ、エンコード形式によって、ECC 000、ECC 050、ECC 080、ECC 100、ECC 140(奇数のシンボルサイズ)、ECC 200(偶数のシンボルサイズ)といったバージョンがあります。
注記: データマトリックスコードの定義はAIM International Inc. (PA)(国際自動認識工業会)によって提供され、ANSI/AIM BC11-1997規格として認証されています。

マトリックスコードは自動的に読み込んだり、保存されているマトリックスコードを読み取ることができます。
EMatrixCodeおよびEMatrixCodeReaderオブジェクトではSaveおよびLoadメソッドが備わっており、ファイルを使ってオブジェクトの状態(学習されたパラメータ、デコードされた文字列、ランク値など)を保存および復元することができます。 ファイルの保存および読み込みプロセスは、シリアライゼーションと呼ばれます。
EMatrixCodeの状態を復元し、それを使ってマトリックスコードを読み取るには:
- 画像を読み込みます。
- 与えられたファイルEMatrixCodeReader::.Loadからリーダーの状態を復元します。
- 画像を読み取ります。
- デコードされた文字列を表示します。

印字品質は、BC11、ISO 15415、ISO/IEC TR 29158およびSEMI T10-0701規格の定義に従って計算されます。
読み取りメソッドの前にランク付けを有効にして、その後でGetIso15415GradingParameters, GetIso29158GradingParameters または GetSemiT10GradingParameters.を使用します。

マトリックスコードのモデルを学習させることで、特定の特徴を探索できます。
学習のワークフロー
学習および読み取りメソッド
- 学習するマトリックスコードの画像を読み込みます。
- Learnメソッドのコントラスト、ファミリー、反転、論理サイズのパラメータを使ってモデルを学習します。
複数のマトリックスコードを学習する必要がある場合は、LearnMoreを使って追加のサンプル画像を渡します。
Learnを呼び出すことはEMatrixCodeReaderパラメータの代わりになるため、Learnを複数回呼び出してもLearnMoreのように結果が累積されることはありません。 - 効率を考慮してサーチパラメータを調整します:
- サンプルマトリックスコードに一致するマトリックスコードのみを読み取ります。
- または、学習されたマトリックスコードと同じ属性(コントラスト、ファミリー、反転、論理サイズ)のコードのみ読み取ります。
- または、例えば反転されていないマトリックスコードのみを読み取るために、学習されたマトリックスコードのサーチパラメータを無視します(SetLearnMaskElement)。 デフォルトのパラメータを削除して、新しいパラメータを追加します。 - 与えられた画像をEMatrixCodeReaderによってデコードします。
- デコードされた文字列を表示します。
- リーダーオブジェクトの状態を保存します。