マルチシンボルラスターバーコードスキャン
HPDFCreateBuiltInBarcodeDecoder は同じラスター上の離れた複数シンボルをスキャンします。ネイティブデコーダが対応する一次元(リニア)、QR コード、Data Matrix ECC 200、PDF417 の混在にも対応します
既存の DecodeLoadedPageBarcodes オーバーロードは自動的にこのスキャナーを使い、ページパイプラインが PDF 座標へ変換する前の各結果のピクセル境界を保持します
結果は上位置、次に左位置でソートされます。重複検出はシンボル種別、テキスト、生バイト、位置の重なりがすべて一致するときだけマージされ、別位置にある同一ペイロードは別の結果のままです
ネイティブヘルパーとジオメトリ
より多くの情報を含む THPDFBarcodeScanSymbols 配列や THPDFBarcodeScanInfo 統計が必要な呼び出し側のために、HPDFBarcodeRecognitionScan は HPDFScanBarcodeBitmap をエクスポートします
THPDFBarcodeDecodeRequest と HPDFCreateBuiltInSingleBarcodeDecoder、THPDFBarcodeScanOptions.Default を渡します。シングルシンボル用のファクトリは元のデコーダへの直接アクセスも残すので、アプリケーション固有の領域選択が可能です
HPDFCreateScanningBarcodeDecoder は、通常のデコーダインターフェースだけで足りるアプリケーションのために、渡されたシングルシンボルの IHPDFBarcodeDecoder を同じ領域スキャン、重複抑制、集計予算でラップします
各 THPDFBarcodeScanSymbol には通常の Barcode レコード、ラスター上の 4 つの Corners、HasPerspectiveGeometry、シンボルごとの Diagnostic が入ります
Data Matrix のジオメトリは前景行の極値から凸包を求め、4 本のエッジ直線を復元し、隣接する直線同士を交差させ、8 パラメータのホモグラフィを解いて、5 点多数決でモジュール中心をサンプリングします
デコーダは対応する正方形と標準矩形の ECC 200 サイズ、回転、ミラーを試し、テキストや生バイトを返す前にファインダー境界と Reed-Solomon ブロックを検証します。回転と台形射影は、訂正可能なデータモジュールの破損と組み合わせられます
検証済みの Data Matrix ジオメトリでは、OrientationDegrees はラスターの x 軸正方向から時計回りに正規化された上エッジの角度を測り、Corners は開始角を特定せずに検出された凸包に沿って時計回りに並びます
4 つの射影済み角点が既に分かっているアプリケーションのために、HPDFDataMatrixGeometry は HPDFLocateDataMatrixQuadrilateral と HPDFSampleBarcodeQuadrilateral を、HPDFDataMatrixDecoder は HPDFDecodeDataMatrixQuadrilateral をエクスポートします
信頼度の値は較正済みの統計的確率ではなく、デコーダの検証経路を表します。射影サンプリングした ECC 200 の結果は現在、境界と誤り訂正の検証に成功すると 0.90 を報告します
その他のネイティブシンボル種別では、ヘルパーの corners は返される軸平行境界を表し、HasPerspectiveGeometry は false になります。既存の信頼度と向きの値はそのまま保持されます
予算とアトミックな公開
スキャナーは大津の二値化と 4 ピクセルの占有タイルを使い、3 段階の近傍距離のうち最大のものから小さいものへと行列前景領域を連結していきます。これにより分断された断片より先に回転したシンボル全体を試しつつ、離れたシンボル向けのより狭い再試行や、特殊なスケールや連結したアートワーク向けのラスター全体フォールバックも維持します
前景タイルが検証済み結果で既に覆われている領域はデコード前にスキップされ、呼び出し側のソースビットマップのピクセルとピクセルフォーマットは保存されます
デフォルトの上限は候補デコード 256 回、候補ピクセル合計 67,108,864、推定作業バイト 268,435,456、リクエスト期限 2 秒です。元の 4096×4096 寸法と 4,194,304 ピクセルの入力上限も引き続き適用されます
リクエストの MaxResults、MaxTextCodeUnits、MaxRawBytes は、別位置の繰り返しペイロードも含む公開結果セット全体に適用されます
THPDFBarcodeScanInfo は試行した候補数、累積デコードピクセル数、拒否された候補、重なる重複結果を報告します
キャンセルは EHPDFOperationCancelled として伝播します。予算の枯渇やデコーダエラーは診断情報とともに false を返し、先行する候補のデコードに成功していても、失敗時にはシンボル配列が空のままになります
白紙や一様に低コントラストな入力は空配列で正常完了し、対応しない高コントラストアートワークは推測シンボルを返しません
認識の範囲
行列スキャンは狭い断片より大きい連結グループを先に試し、離れたシンボルの再試行と元の期限を維持します。ネイティブ QR ジオメトリは候補グリッド全体の確保とサンプリングの前に、正確なファインダーパターンを検証します
複数シンボルの領域グループ化には、十分な背景の分離が必要です。接触するシンボル、重なるシンボル、周囲の込み入ったアートワーク、著しく破損したロケータ境界、極小の射影モジュール、極端な透視図は位置特定を妨げることがあります
DMRE、曲面、写真 glare の復元、既存ネイティブデコーダセットを超える追加シンボル種別は、このプロファイルの対象外です
独立したフィクスチャは、QR ペイロードの繰り返しを含む 6 シンボルのコラージュ、回転および台形の Data Matrix 画像、矩形 ECC 200、訂正可能なデータモジュール破損との透視の組み合わせをカバーします
対応するペイロードモードは組み込み OCR とバーコード認識を、ページからラスターへの座標マッピングはロード済みページバーコードデコードを参照してください