C#でより速く読み取るための BarCode クロップ領域の定義方法
IronSoftware.Drawing.Rectangle を使用して切り取り領域を定義し、IronBarcode のスキャン領域を特定の画像領域に制限することで、関連する領域のみに焦点を当てることでバーコード読み取りパフォーマンスが大幅に向上し、エラーが削減されます。
IronBarcodeの最も重要な機能の一つはクロップリージョンを指定する機能です。 この機能により、 IronBarcode はIronSoftware.Drawing.Rectangle オブジェクトを使用して、画像内の切り取り領域で指定された特定のバーコードまたは領域のみを読み取ることができます。 この機能を使用することで、読み間違いを減らすだけでなく、読解パフォーマンスも向上します。 このテクニックは、複数ページのドキュメントや、バーコードの位置が予測可能な高解像度の画像を扱う場合に特に役立ちます。
複数のバーコードや複雑な背景を持つ画像を処理する場合、バーコード読み取り速度を最適化するために、クロップ領域を定義することが重要になります。 スキャン範囲を限定することで、画像全体をスキャンするよりも最大5倍速い処理速度を実現し、BarCode以外の要素による誤検出も減らすことができます。
クイックスタート: クロップ領域の定義と適用によりバーコードをより速く読み取る
クロップ矩形を作成し、数秒でIronBarcodeにフィード—追加のセットアップ不要で摩擦なく使用できます。 BarcodeReaderOptions を使用して、スキャンを特定の画像領域に制限することがいかに簡単かをご覧ください。
-
IronBarcode をNuGetパッケージマネージャでインストール
PM > Install-Package BarCode -
このコード スニペットをコピーして実行します。
var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { CropArea = new IronSoftware.Drawing.Rectangle(x: 50, y: 100, width: 300, height: 150) }); -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronBarcode を使い始めましょう無料トライアル
最小限のワークフロー(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.cs
using 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);
Imports IronBarCode
Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522
Private crop1 As 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.cs
using 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);
}
Imports IronBarCode
Imports System
Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522
Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2 - x1, height:= y2 - y1)
Private options As New BarcodeReaderOptions() With {.CropArea = crop1}
Private result = BarcodeReader.Read("sample.png", options)
For Each item In result
Console.WriteLine(item.Value)
Next item
上記のコード スニペットでは、BarcodeReaderOptions オブジェクト内のインスタンス化された Rectangle を CropArea プロパティとして使用しました。 次に、この 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のクロップ領域は、複数のバーコード、複雑な背景、複数ページのドキュメント、バーコードの位置が一定で予測可能な高解像度の画像を処理する際に特に役立ちます。

