IronOCRでナンバープレートをC#で読む方法
IronOCRのReadLicensePlateメソッドは、高度なOCR技術を用いて、車両画像からナンバープレート番号を自動的に抽出します。 この単一のメソッド呼び出しは、ナンバープレートを高精度で処理し、自動車両管理システムのためにプレートテキストと信頼度スコアの両方を返すことができます。
大量の車両画像を管理する場合、ナンバープレートを手動で読み取るのは時間がかかり、人為的エラーが発生しやすくなります。 IronOCR のようなツールを使用してこのプロセスを自動化すると、より効率的で正確なソリューションが得られます。 IronOCRのReadLicensePlateメソッドを使用すると、画像からナンバープレート番号をプログラムで抽出できるため、大幅な時間節約とデータ精度の向上が図れます。
このガイドでは、IronOCRをナンバープレート認識用に使用する方法を、例やカスタマイズ可能な設定を通して説明し、プロセスをシームレスにします。 これらの方法を活用することで、開発者はナンバープレートの読み取りを自動化し、駐車場管理、通行料徴収、セキュリティ監視などのタスクをより効率的に行うことができます。
この機能を使用するには、IronOcr.Extension.AdvancedScan パッケージもインストールする必要があります。
クイックスタート: ナンバープレート番号を瞬時に抽出
IronOCRのReadLicensePlateを使用した単一のメソッド呼び出しで、任意の画像からナンバープレートのテキストをプログラムで抽出できます。 画像を読み込んでメソッドを呼び出すだけで、すぐにプレート番号と信頼度の両方を取得できます。
最小限のワークフロー(5ステップ)
- ナンバープレート読み取り用のC#ライブラリをダウンロードする
- 処理のためにナンバープレート画像をインポート
- 文書にはヘッダーやフッターなしにナンバープレート画像のみが含まれていることを確認
ReadLicensePlateメソッドを使用して画像からデータを抽出します- OcrLicensePlateResultプロパティにアクセスして、抽出されたライセンス データを表示および操作します。
C#でナンバープレートを読むには?
IronOCRでナンバープレートを読むには、以下のステップを適用します:
- 私たちは、入力として
OcrInputをパラメータとして受け取るReadLicensePlateメソッドを利用しています。 この方法は、ライブラリの標準的なRead対応機能よりも、ナンバープレート向けに最適化されています。 - オプションとして、IronOCRがナンバープレート中に存在しうる特定の文字をホワイトリストに登録し、ナンバープレート番号の処理を高速化するように設定することができます。
[{私:(
- この方法は現時点では、英語、中国語、日本語、韓国語、ラテンアルファベットのスクリプトでのみ機能します。
- .NET Framework で詳細スキャンを使用するには、プロジェクトを x64 アーキテクチャで実行する必要があります。 )}]
入力ナンバープレートはどのように見えますか?
<img src="/static-assets/ocr/how-to/read-license-plate/license-plate.webp" alt=""8TRS777"と表示されたカリフォルニア州のナンバープレート - ナンバープレート読み取りデモの例">
ナンバープレートの OCR を設定するには?
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-read-license-plate.cs
using 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);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Private ocr = New IronTesseract()
ocr.Configuration.WhiteListCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
Dim inputLicensePlate = New OcrInput()
inputLicensePlate.LoadImage("plate.jpeg")
' Read license plate
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)
' Retrieve license plate number and confidence value
Dim output As String = $"{result.Text}" & vbLf & "Result Confidence: {result.Confidence}"
Console.WriteLine(output)
どのような結果が期待できますか?

このコードは、画像を OcrInput としてインポートし、ReadLicensePlate メソッドを使用してナンバープレートのテキストを抽出する方法を示しています。 出力には、入力画像に表示されているナンバープレートに一致する抽出されたテキストと、OCR の精度を示す信頼度レベルが表示されます。
テキスト: OCR 入力から抽出されたテキスト。
Confidence: 各文字の平均値に対する統計的な精度の信頼度を示す double プロパティ。1 が最高、0 が最低となります。
OCR プロセスをより正確に制御するには、高度な構成オプションを調べて、文字認識設定を微調整することができます。
車の画像からナンバープレートを抽出するにはどうすればよいですか?
この方法は、ナンバープレートの付いた車が写っている画像にも有効です。 コードは上のものと同じですが、入力画像が変更されています。 画像内でナンバープレートが配置されている領域のピクセル座標を抽出することもできます。
どのようなタイプの車の画像が最も効果的ですか?

最適な結果を得るためには、車の画像に以下のような特徴があることを確認してください:
- ナンバープレートの明確な視認性
- 良好な照明条件(まぶしさや影を避けること)
- 最小限の角度の歪み
- 適切な解像度(低解像度の画像については、DPI設定の調整を検討してください。)
ナンバープレートの位置座標を取得するにはどうすればよいですか?
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-read-from-car.cs
using 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);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Private ocr = New IronTesseract()
Private inputLicensePlate = New OcrInput()
inputLicensePlate.LoadImage("car_license.jpg")
' Read license plate
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)
' Retrieve license plate coordinates
Dim rectangle As RectangleF = result.Licenseplate
' Write license plate value and coordinates in a string
Dim output As String = $"License Plate Number:" & vbLf & "{result.Text}" & vbLf & vbLf & $"License Plate Area_" & vbLf & $"Starting X: {rectangle.X}" & vbLf & $"Starting Y: {rectangle.Y}" & vbLf & $"Width: {rectangle.Width}" & vbLf & $"Height: {rectangle.Height}"
Console.WriteLine(output)
結果にはどのような情報が含まれますか?

この例は、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})");
}
}
Imports IronOcr
Imports System.IO
Imports System.Threading.Tasks
Public Async Function ProcessMultipleLicensePlates(imagePaths As String()) As Task
Dim ocr As New IronTesseract()
' Configure for optimal performance
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock
Dim tasks = imagePaths.Select(Async Function(path)
Using input As New OcrInput()
input.LoadImage(path)
Dim result = Await Task.Run(Function() ocr.ReadLicensePlate(input))
Return New With {
.FilePath = path,
.PlateNumber = result.Text,
.Confidence = result.Confidence
}
End Using
End Function)
Dim results = Await Task.WhenAll(tasks)
' Process results
For Each result In results
Console.WriteLine($"File: {result.FilePath}")
Console.WriteLine($"Plate: {result.PlateNumber} (Confidence: {result.Confidence:P})")
Next
End Function
大規模処理の場合は、マルチスレッド機能を実装してパフォーマンスを最大化することを検討してください。
ナンバープレート認識の精度を向上させるにはどうすればよいですか?
ナンバープレート検出の精度を高めるには、以下の最適化テクニックを検討してください:
画像前処理フィルタを適用する
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);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As 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
Dim result = ocr.ReadLicensePlate(input)
End Using
さまざまな照明条件に対応する
困難な照明シナリオについては、適切な補正を適用します:
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);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As 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
Dim result = ocr.ReadLicensePlate(input)
End Using
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);
Imports IronOcr
Dim ocr As New IronTesseract()
' Subscribe to progress events
AddHandler ocr.OcrProgress, Sub(sender, e)
Console.WriteLine($"Processing: {e.ProgressPercent}% complete")
End Sub
Using input As New OcrInput()
input.LoadImage("large_parking_lot.jpg")
Dim result = ocr.ReadLicensePlate(input)
End Using
詳細なパフォーマンス監視については、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結果の信頼性評価の両方が可能になります。
ドキュメント管理でIronOCRを使用する利点は何ですか?
IronOCRを使用することで、スキャンされた文書を検索可能かつ編集可能なテキストに変換し、手作業によるデータ入力を減らし、文書のアクセス性を向上させることでワークフローを効率化します。
IronOCRはデータ精度をどのように向上させますか?
IronOCRはその高度な認識アルゴリズムと画像補正機能により、信頼性が高く正確なテキスト抽出プロセスを保証します。
IronOCRの無料トライアルを利用できますか?
はい、Iron SoftwareはIronOCRの無料トライアルを提供しており、ユーザーが購入決定をする前にその機能と能力をテストできます。

