IronOCRでナンバープレートをC#で読む方法
IronOCRのReadLicensePlateメソッドは、高度なOCR技術を使って車両画像からナンバープレートを自動的に抽出します。 この単一のメソッド呼び出しは、ナンバープレートを高精度で処理し、自動車両管理システムのためにプレートテキストと信頼度スコアの両方を返すことができます。
大量の車両画像を管理する場合、ナンバープレートを手動で読み取るのは時間がかかり、人為的エラーが発生しやすくなります。 IronOCR のようなツールを使用してこのプロセスを自動化すると、より効率的で正確なソリューションが得られます。 IronOCRのReadLicensePlateメソッドは、プログラムによって画像からナンバープレートを抽出することができ、データの精度を高めながら時間を大幅に節約することができます。
このガイドでは、IronOCRをナンバープレート認識用に使用する方法を、例やカスタマイズ可能な設定を通して説明し、プロセスをシームレスにします。 これらの方法を活用することで、開発者はナンバープレートの読み取りを自動化し、駐車場管理、通行料徴収、セキュリティ監視などのタスクをより効率的に行うことができます。
この機能を使用するには、 IronOcr.Extension.AdvancedScanパッケージもインストールする必要があります。
クイックスタート: ナンバープレートの番号を即座に抽出する
IronOCRのReadLicensePlateメソッドを呼び出すだけで、どんな画像からでもナンバープレートのテキストをプログラムで抽出することができます。 画像を読み込んでメソッドを呼び出すだけで、すぐにプレート番号と信頼度の両方を取得できます。
今すぐ NuGet で PDF を作成してみましょう:
NuGet パッケージ マネージャーを使用して IronOCR をインストールします
このコード スニペットをコピーして実行します。
OcrLicensePlateResult result = new IronTesseract().ReadLicensePlate(new OcrInput("plate.jpg"));実際の環境でテストするためにデプロイする
最小限のワークフロー(5ステップ)
- ナンバープレート読み取り用のC#ライブラリをダウンロードする
- 処理のためにナンバープレート画像をインポート
- 文書にはヘッダーやフッターなしにナンバープレート画像のみが含まれていることを確認
ReadLicensePlateメソッドを使用して画像からデータを抽出しますOcrLicensePlateResultプロパティにアクセスして、抽出されたライセンス データを表示および操作します。
C#でナンバープレートを読むには?
IronOCRでナンバープレートを読むには、以下のステップを適用します:
OcrInputを入力パラメータとして受け取るReadLicensePlateメソッドを利用します。 このメソッドは、ライブラリの標準的なReadの対応よりも、ナンバープレート用に最適化されています。- オプションとして、IronOCRがナンバープレート中に存在しうる特定の文字をホワイトリストに登録し、ナンバープレート番号の処理を高速化するように設定することができます。
ブラケットオープン
- この方法は現在、英語、中国語、日本語、韓国語、ラテンアルファベット文字にのみ対応しています。
- .NET Framework で詳細スキャンを使用するには、プロジェクトを x64 アーキテクチャで実行する必要があります。
ブラケットを閉じる
入力ナンバープレートはどのように見えますか?
ナンバープレートの OCR を設定するには?
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-read-license-plate.csusing IronOcr;
using System;
var ocr = new IronTesseract();
ocr.Configuration.WhiteListCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
using var inputLicensePlate = new OcrInput();
inputLicensePlate.LoadImage("plate.jpeg");
// Read license plate
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);
// Retrieve license plate number and confidence value
string output = $"{result.Text}\nResult Confidence: {result.Confidence}";
Console.WriteLine(output);どのような結果が期待できますか?
Debug console showing license plate OCR results:カリフォルニア州、プレート 8TRS777、信頼度 95.87%
このコードは、画像をOcrInputとしてインポートし、それをReadLicensePlateメソッドと共に使用してナンバー プレートからテキストを抽出する方法を示しています。 出力には、入力画像に表示されているナンバープレートに一致する抽出されたテキストと、OCR の精度を示す信頼度レベルが表示されます。
テキスト: OCR 入力から抽出されたテキスト。
自信:doubleプロパティで、すべての文字の平均の統計的な精度の信頼度を示し、1が最高、0が最低です。
OCR プロセスをより正確に制御するには、高度な構成オプションを調べて、文字認識設定を微調整することができます。
車の画像からナンバープレートを抽出するにはどうすればよいですか?
この方法は、ナンバープレートの付いた車が写っている画像にも有効です。 コードは上のものと同じですが、入力画像が変更されています。 画像内でナンバープレートが配置されている領域のピクセル座標を抽出することもできます。
どのようなタイプの車の画像が最も効果的ですか?
マハラシュトラ州のナンバープレートMH 20 EE 7602を示すダークグレーのシュコダ車がレンガの舗道に駐車。
最適な結果を得るためには、車の画像に以下のような特徴があることを確認してください:
- ナンバープレートの明確な視認性
- 良好な照明条件(まぶしさや影を避けること)
- 最小限の角度の歪み
- 適切な解像度(低解像度の画像については、DPI設定の調整を検討してください。)
ナンバープレートの位置座標を取得するにはどうすればよいですか?
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-read-from-car.csusing IronOcr;
using IronSoftware.Drawing;
using System;
var ocr = new IronTesseract();
using var inputLicensePlate = new OcrInput();
inputLicensePlate.LoadImage("car_license.jpg");
// Read license plate
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);
// Retrieve license plate coordinates
RectangleF rectangle = result.Licenseplate;
// Write license plate value and coordinates in a string
string output = $"License Plate Number:\n{result.Text}\n\n"
+ $"License Plate Area_\n"
+ $"Starting X: {rectangle.X}\n"
+ $"Starting Y: {rectangle.Y}\n"
+ $"Width: {rectangle.Width}\n"
+ $"Height: {rectangle.Height}";
Console.WriteLine(output);結果にはどのような情報が含まれますか?
検出されたナンバープレート MH20EE7602 とバウンディングボックス座標および寸法を示す Visual Studio デバッグ出力。
この例では、 ReadLicensePlateメソッドを車の画像に適用する方法を示します。 このメソッドは、画像内でナンバープレートが配置されている場所の長方形座標も返します。
この方法は、単一のナンバープレートのみを見つけるために最適化されており、ストック画像内で検索することができます。
複数のナンバープレートを処理するにはどうすればよいですか?
複数の車両画像を扱う場合、バッチ処理を使用すると効率的に処理できます:
using IronOcr;
using System.IO;
using System.Threading.Tasks;
public async Task ProcessMultipleLicensePlates(string[] imagePaths)
{
var ocr = new IronTesseract();
// Configure for optimal performance
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
var tasks = imagePaths.Select(async path =>
{
using var input = new OcrInput();
input.LoadImage(path);
var result = await Task.Run(() => ocr.ReadLicensePlate(input));
return new {
FilePath = path,
PlateNumber = result.Text,
Confidence = result.Confidence
};
});
var results = await Task.WhenAll(tasks);
// Process results
foreach (var result in results)
{
Console.WriteLine($"File: {result.FilePath}");
Console.WriteLine($"Plate: {result.PlateNumber} (Confidence: {result.Confidence:P})");
}
}using IronOcr;
using System.IO;
using System.Threading.Tasks;
public async Task ProcessMultipleLicensePlates(string[] imagePaths)
{
var ocr = new IronTesseract();
// Configure for optimal performance
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
var tasks = imagePaths.Select(async path =>
{
using var input = new OcrInput();
input.LoadImage(path);
var result = await Task.Run(() => ocr.ReadLicensePlate(input));
return new {
FilePath = path,
PlateNumber = result.Text,
Confidence = result.Confidence
};
});
var results = await Task.WhenAll(tasks);
// Process results
foreach (var result in results)
{
Console.WriteLine($"File: {result.FilePath}");
Console.WriteLine($"Plate: {result.PlateNumber} (Confidence: {result.Confidence:P})");
}
}大規模処理の場合は、マルチスレッド機能を実装してパフォーマンスを最大化することを検討してください。
ナンバープレート認識の精度を向上させるにはどうすればよいですか?
ナンバープレート検出の精度を高めるには、以下の最適化テクニックを検討してください:
画像前処理フィルタを適用する
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load and preprocess the image
input.LoadImage("blurry_plate.jpg");
input.Deskew(); // Correct image rotation
input.DeNoise(); // Remove background noise
input.EnhanceResolution(225); // Upscale for better clarity
input.Sharpen(); // Enhance edge definition
var result = ocr.ReadLicensePlate(input);using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load and preprocess the image
input.LoadImage("blurry_plate.jpg");
input.Deskew(); // Correct image rotation
input.DeNoise(); // Remove background noise
input.EnhanceResolution(225); // Upscale for better clarity
input.Sharpen(); // Enhance edge definition
var result = ocr.ReadLicensePlate(input);さまざまな照明条件に対応する
困難な照明シナリオについては、適切な補正を適用します:
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("dark_plate.jpg");
input.Contrast(1.5); // Increase contrast
input.Brightness(1.2); // Adjust brightness
input.Binarize(); // Convert to black and white for clarity
var result = ocr.ReadLicensePlate(input);using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("dark_plate.jpg");
input.Contrast(1.5); // Increase contrast
input.Brightness(1.2); // Adjust brightness
input.Binarize(); // Convert to black and white for clarity
var result = ocr.ReadLicensePlate(input);OCRのパフォーマンスを監視するにはどうすればよいですか?
大量のナンバープレートを処理する場合、進捗状況を追跡することで、システムリソースの管理に役立ちます:
using IronOcr;
var ocr = new IronTesseract();
// Subscribe to progress events
ocr.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
using var input = new OcrInput();
input.LoadImage("large_parking_lot.jpg");
var result = ocr.ReadLicensePlate(input);using IronOcr;
var ocr = new IronTesseract();
// Subscribe to progress events
ocr.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
using var input = new OcrInput();
input.LoadImage("large_parking_lot.jpg");
var result = ocr.ReadLicensePlate(input);詳細なパフォーマンス監視については、IronOCRの進捗追跡機能をご覧ください。
他のドキュメントリーディングと比較してどうですか?
IronOCRの専門的な文書読み取り能力は、ナンバープレートだけにとどまりません。 ナンバープレート検出に力を与えているのと同じコンピュータ ビジョン テクノロジーを適用することができます:
- 旅行や本人確認のためのパスポート読み取り。
- MICR 小切手処理 銀行アプリケーション用
- デジタル化プロジェクトのための一般文書のスキャン。
一般的な使用例とは
IronOCRによるナンバープレート認識は様々なアプリケーションを可能にします:
- 駐車場管理:入出庫ロギングと支払い処理の自動化
- 料金徴収:料金所での車両識別のスピードアップ
- セキュリティ監視:制限区域での車両の動きを追跡する
- フリート管理:社用車と物流を監視する
- 法執行:対象車両をすばやく特定する
IronOCRは高精度でリアルタイムに画像を処理できるため、バッチ処理にもライブアプリケーションにも適しています。
よくある質問
C#で画像からナンバープレートを読み取るには?
IronOCRのReadLicensePlateメソッドを使ってC#でナンバープレートを読むことができます。IronTesseractインスタンスを作成し、ナンバープレート画像を含むOcrInputを指定してReadLicensePlateを呼び出すだけです。このメソッドは、抽出されたナンバープレートのテキストと信頼度スコアのOcrLicensePlateResultを返します。
ナンバープレート認識にはどのパッケージをインストールする必要がありますか?
IronOCRのナンバープレート認識機能を使用するには、NuGetからIronOCRのメインパッケージとIronOcr.Extension.AdvancedScanパッケージの両方をインストールする必要があります。AdvancedScanエクステンションは専用のReadLicensePlateメソッドを提供する。
たった1行のコードでナンバープレートを抽出できますか?
はい、IronOCRは1行のコードでナンバープレートのテキストを抽出することができます:OcrLicensePlateResult result = new IronTesseract().ReadLicensePlate(new OcrInput("plate.jpg")); これでナンバープレートと信頼度スコアが即座に返されます。
ナンバープレート認識でサポートされている言語は?
IronOCRのReadLicensePlateメソッドは現在、英語、中国語、日本語、韓国語、ラテンアルファベットのナンバープレートをサポートしています。このメソッドはこれらの文字セット専用に最適化されています。
ナンバープレートの読み取り精度を向上させるにはどうすればよいですか?
IronOCRでは、ナンバープレートに現れる特定の文字をホワイトリストに登録し、ヘッダーやフッターを含まないナンバープレートだけを画像に含ませ、高品質の画像を使用することで精度を向上させることができます。ReadLicensePlateメソッドはすでにナンバープレート認識専用に最適化されています。
.NET Frameworkでのナンバープレート認識のシステム要件は何ですか?
.NET Framework上でReadLicensePlateを含むIronOCRの高度なスキャン機能を使用する場合、プロジェクトはx64アーキテクチャ上で実行する必要があります。この要件はナンバープレート認識機能の最適なパフォーマンスを保証します。
ナンバープレート認識はどのような情報を返しますか?
IronOCRのReadLicensePlateメソッドは、抽出されたナンバープレートテキストと信頼度スコアを含むOcrLicensePlateResultオブジェクトを返します。これにより、ナンバープレートの取得とOCR結果の信頼性評価の両方が可能になります。






