C#でより速く読み取るための BarCode クロップ領域の定義方法
IronSoftware.Drawing.Rectangleを使用してクロップ領域を定義し、IronBarcodeのスキャン領域を特定の画像領域に限定することで、バーコードの読み取りパフォーマンスを大幅に向上させ、関連する領域のみに焦点を当てることでエラーを減らします。
IronBarcodeの最も重要な機能の一つはクロップリージョンを指定する機能です。 この機能により、IronBarcodeはIronSoftware.Drawing.Rectangleオブジェクトを使用して、画像内のクロップ領域で指定された特定のバーコードまたは領域のみを読み取ることができます。 この機能を使用することで、読み間違いを減らすだけでなく、読解パフォーマンスも向上します。 このテクニックは、複数ページのドキュメントや、バーコードの位置が予測可能な高解像度の画像を扱う場合に特に役立ちます。
複数のバーコードや複雑な背景を持つ画像を処理する場合、バーコード読み取り速度を最適化するために、クロップ領域を定義することが重要になります。 スキャン範囲を限定することで、画像全体をスキャンするよりも最大5倍速い処理速度を実現し、BarCode以外の要素による誤検出も減らすことができます。
クイックスタート: クロップ領域を定義し高速なバーコード読み取りに適用
クロップ矩形を作成し、数秒でIronBarcodeにフィード—追加のセットアップ不要で摩擦なく使用できます。 BarcodeReaderOptionsを使用して特定の画像エリアにスキャンを制限する方法の簡単さをご覧ください。
今すぐ NuGet で PDF を作成してみましょう:
NuGet パッケージ マネージャーを使用して IronBarcode をインストールします
このコード スニペットをコピーして実行します。
var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { CropArea = new IronSoftware.Drawing.Rectangle(x: 50, y: 100, width: 300, height: 150) });実際の環境でテストするためにデプロイする
最小限のワークフロー(5ステップ)
- バーコード読み取り用のC#ライブラリをダウンロードする
- 画像内のクロップ領域の座標とサイズを探す
- 座標からクロップ領域を作成する
Readメソッドを使用してバーコードを検出して読み取ります- メソッドにクロップ領域オブジェクトを渡す
画像の切り抜き領域の座標とサイズを見つけるにはどうすればよいですか?
画像内の点の座標を求める方法はたくさんあります。 1つの方法は、コンピュータのペイント・アプリケーションを使って画像を読み込むことです。 クロップ領域の最初の座標を取得するには、所望の最初の位置、すなわちRectangleの左上の隅になる場所にカーソルを移動し、画面左下に表示されるアプリから得られるx、y座標を取得します。 次に、Rectangleの右下の隅となる第2の点を見つけます。 より明確な理解のために、以下の画像を参照してください。
より高度なシナリオでは、正確なピクセル座標と測定ツールを提供するGIMPやPhotoshopのような画像編集ソフトウェアの使用も検討してください。 開発者の中には、オンラインの座標検索ツールを使用したり、画像のホバー時にマウス座標を表示するシンプルなHTML/JavaScriptユーティリティを作成したりすることを好む人もいます。

CropRegionリファレンスの設定
座標を決定するためにどのようなツールを使用できますか?
その座標値は、Rectangleオブジェクトのプロパティとして使用できます。 オブジェクトの幅はx2 - x1として定義でき、高さはy2 - y1として定義できます。 BarCode画像を扱う場合、座標は左上(0,0)から始まり、右(X軸)、下(Y軸)に移動するにつれて大きくなることを理解することが重要です。
座標決定のアプローチには、次のようなものがあります:
- OS内蔵ツール:Windowsペイント、macOSプレビュー
- ブラウザ開発者ツール: ウェブベースの画像の要素を検査する
- プロフェッショナルソフトウェア:Adobe Photoshop、GIMP
- カスタムユーティリティ:シンプルな座標ビューアアプリケーション
- IronBarcodeのデバッグ機能: 座標オーバーレイで処理された画像をエクスポートする。
座標から長方形の寸法を計算するには?
2つの角が決まれば、寸法を計算するのは簡単です。 矩形には、x座標、y座標、幅、高さの4つのパラメータが必要です。 クロップ・リージョンを正しくインスタンス化する方法を説明します:
:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-instantiate-CropRegion.csusing IronBarCode;
int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;
IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2-x1, height: y2-y1);
この座標系は、IronBarcodeの画像補正機能とシームレスに連携しており、画像の特定の領域にのみフィルタを適用することができます。
CropRegionを適用してBarCodeを読み取るにはどうすればよいですか?
IronBarcodeに読み取らせたいCropRegionsを定義したら、他の設定と一緒にプロパティの1つとしてBarcodeReaderOptionsにオブジェクトを適用することができます。 これをBarcodeReader.Read()メソッドのパラメータとして使用できます。 以下のコードスニペットはこのプロセスを示しています。
BarcodeReaderOptionsはどのようなパラメータを受け付けますか?
BarCodeReaderOptionsクラスは、バーコード読み取りプロセスの包括的な制御を提供します。 作物地域を超えて、設定することができます:
- 速度の最適化:速度設定を使用して、精度とパフォーマンスのバランスをとる。
- バーコードの種類: 検索する正確なフォーマットを指定します(サポートされているフォーマット)。
- 画像フィルター:斜めのバーコードや破損したバーコードの補正を適用します。
- マルチスレッド:並列処理を有効にしてパフォーマンスを向上させる
- 回転処理:回転した BarCode を自動的に検出します。
切り取り領域から複数の BarCode 結果を処理するにはどうすればよいですか?
複数のバーコードを含む切り取り領域をスキャンすると、IronBarcodeは結果のコレクションを返します。 各結果には、作物領域内の正確な位置、BarCodeタイプ、デコードされた値などの貴重なメタデータが含まれています。 ここでは、包括的な作物領域処理を実装する方法を説明します:
:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-apply-CropRegion.csusing IronBarCode;
using System;
int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;
IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2 - x1, height: y2 - y1);
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
CropArea = crop1
};
var result = BarcodeReader.Read("sample.png", options);
foreach (var item in result)
{
Console.WriteLine(item.Value);
}
上記のコードスニペットから、BarcodeReaderOptionsオブジェクトにCropAreaプロパティとしてインスタンス化したRectangleを使用しています。 このBarcodeReaderOptionsオブジェクトをBarcodeReader.Read()メソッドのパラメータとして使用し、画像にCropAreaを適用し、内部のバーコードを読み取ります。
クロップ・リージョンの高度なテクニック
本番アプリケーションでは、次のような高度な戦略を検討してください:
1.ダイナミッククロップ領域:ドキュメント テンプレートまたは OCR 結果に基づいて切り抜き領域を計算します。 2.複数のリージョン:複雑なレイアウトのために、1つの画像で複数のクロップ領域を処理します。 3.パフォーマンスの最適化:async処理とクロップリージョンを組み合わせて、最大のスループットを実現します。 4.エラー処理: バーコードが期待される領域で見つからない場合のフォールバック戦略を実装する。
PDFドキュメントで作業する場合、特定のページに切り取り領域を適用して、大きなファイルの処理時間を劇的に短縮することができます。 これは、請求書、出荷ラベル、バーコードの位置が標準化されているフォームに特に役立ちます。
作物の地域定義のベストプラクティス
作物地域の効果を最大化する:
- パディングを追加する: 若干のばらつきを考慮し、予想されるBarCode位置の周囲に10~20ピクセルを含める。
- 徹底的にテストする:クロップ領域がドキュメントセット全体で機能することを確認する。
- ドキュメント座標:アプリケーションの一般的な作物地域の参照シートを維持する。
- スケーリングを考慮する:異なる画像解像度やDPI設定を考慮する
- パフォーマンスを監視する:作物地域の有効性を検証するために処理時間を追跡する。
フォールト トレランスを必要とするアプリケーションでは、2 パス アプローチを実装します。まずクロップ領域をスキャンし、次に期待される領域で BarCode が見つからなかった場合にフル イメージ スキャンにフォールバックします。
結論
クロップ領域の定義は、.NETアプリケーションのバーコード読み取りパフォーマンスを最適化するための強力なテクニックです。 スキャン範囲を特定の領域に限定することで、誤検出を減らしながら大幅なスピードアップを実現できます。 単一の画像を処理する場合でも、バッチ処理を行う場合でも、クロップリージョンは本番環境で必要とされる精度とパフォーマンスを提供します。
よくある質問
BarCode crop regionとは何ですか?
バーコードのクロップ領域とは、IronBarcodeがスキャンに集中する画像内の特定の領域のことです。IronSoftware.Drawing.Rectangleを使用してクロップ領域を定義することにより、バーコードの読み取り速度を最大5倍まで向上させることができます。
バーコード読み取り用のクロップ領域を定義するにはどうすればよいですか?
IronBarcodeでクロップ領域を定義するには、特定の座標(x、y)と寸法(幅、高さ)を持つIronSoftware.Drawing.Rectangleオブジェクトを作成し、Readメソッドを呼び出す際にそれをBarcodeReaderOptions.CropAreaプロパティに渡します。
クロップ・リージョンを使用することで、どのようなパフォーマンス向上が期待できますか?
IronBarcodeのクロップ領域機能は、画像全体をスキャンする場合と比較して、バーコードの読み取りパフォーマンスを最大5倍向上させることができます。これは、バーコードの位置が予測可能な複数ページの文書や高解像度の画像を扱う場合に特に有益です。
自分の作物地域の正しい座標を見つけるにはどうすればよいですか?
クロップ領域の座標は、Microsoft Paint、GIMP、Photoshopなどの画像編集ソフトを使って見つけることができます。画像を開き、領域の左上隅にカーソルを移動し、x,y座標を記録し、IronBarcodeの矩形の幅と高さを決定するために右下隅の座標を見つけるだけです。
クロップ・リージョンの使用は、どのような場合に特に有益ですか?
IronBarcodeのクロップ領域は、複数のバーコード、複雑な背景、複数ページのドキュメント、バーコードの位置が一定で予測可能な高解像度の画像を処理する際に特に役立ちます。






