光学式マーク認識 (OMR) は、マークされたフォームの画像を読み取り、データを抽出するために使用できるテクノロジです。 OMR は標準化されたテスト、調査、投票でよく使用されますが、生徒の作業の採点や在庫の追跡など、他のさまざまなアプリケーションでも使用できます。このブログ投稿では、C# でバーコードを含む OMR シートを作成して読み取る方法を説明します。
この記事では次のトピックについて説明します。
バーコードを使用した OMR の作成と読み取り - C# API
Aspose.OMR for .NET API を使用して、C# でバーコード付きの OMR シートを作成および読み取ります。これにより、開発者は、.NET アプリケーションで手書きの回答用紙、アンケート、アプリケーション、および同様のフォームを迅速かつ簡単に設計、レンダリング、認識できるようになります。
APIのDLLをダウンロードするか、NuGetを使用してインストールしてください。
PM> Install-Package Aspose.OMR
C#でバーコードを含むOMRシートを作成する
以下の手順に従って、単純なテキスト マークアップを使用して、OMR テンプレート (.omr) ファイルとシート イメージを簡単に作成できます。
- OmrEngine クラスのインスタンスを作成します。
- その後、テキスト ファイルのパスを引数として GenerateTemplate() メソッドを呼び出して、GenerationResult オブジェクトを取得します。
- 最後に、Save() メソッドを呼び出して、生成されたイメージと .omr テンプレート ファイルをローカル ディスクに保存します。
次のコード サンプルは、C# を使用してバーコードを含む OMR シートを作成する方法を示しています。
// 入出力ファイルのディレクトリ
string dataDir = "C:\\Files\\";
// エンジンの初期化
OmrEngine engine = new OmrEngine();
GenerationResult res = engine.GenerateTemplate(Path.Combine(dataDir, "OMRTestWithBarcode.txt"));
// エラーが発生した場合のチェック
if (res.ErrorCode != 0)
{
Console.WriteLine("ERROR: " + res.ErrorCode + ": " + res.ErrorMessage);
}
// 生成結果の保存: 画像と .omr テンプレート
res.Save(dataDir, "OMRTestWithBarcode");
OMR テンプレートの作成に使用される次の単純なテキスト マークアップをさらに確認できます。
?barcode=AsposeWebsite
value=aspose.com
barcode_type=qr
qr_version=1
x=1900
y=250
height=360
?grid=ID
sections_count=8
#What is Aspose.OMR main function?
() OCR () Capture human-marked data
() There is no main function () Enhance images
#Can Aspose.OMR process not only scans, but also photos?
() Yes, indeed! () No
#Aspose.OMR is available on any platform, because it is:
() Cross-platform code () Cloud service
#Aspose.OMR works with any kind of OMR forms: tests, exams, questionnaires, surveys, etc.
() Yes, indeed! () No
?text= Answer sheet section
?answer_sheet=MainQuestions
elements_count=12
columns_count=4
?text=Sign________________________________
ここから 生成された OMR テンプレートをダウンロードしてください。
C#でバーコード付きOMRシートを読み取る
バーコードを含む OMR シートの塗りつぶされたスキャン画像に対して OMR 操作を実行し、CSV ファイルにデータを抽出できます。この目的のために、準備された OMR テンプレート (.omr) と画像 (ユーザーが入力したフォーム/シート) が必要です。バーコード付きOMRシートを読み取り、CSVでデータを抽出するには、以下の手順に従ってください。
- OmrEngine クラスのインスタンスを作成します。
- GetTemplateProcessor() メソッドを呼び出し、TemplateProcessor クラス オブジェクトを初期化します。 OMR テンプレート ファイルのパスを引数として受け取ります。
- 画像パスを引数として Recognize() メソッドを呼び出して、RecognitionResult オブジェクトを取得します。
- その後、GetCsv()メソッドを使用して認識結果をCSV文字列として取得します。
- 最後に、CSV 結果を CSV ファイルとしてローカル ディスクに保存します。
次のコード サンプルは、C# でバーコードを含む OMR シートからデータを読み取り、抽出する方法を示しています。
// このコード例は、画像に対して OMR を実行してデータを抽出する方法を示しています。
// OMR テンプレート ファイルのパス
string TemplateName = @"OMRTestWithBarcode.omr";
string UserImage = @"OMRTestWithBarcode.png";
// 入力ファイルと出力ファイルのパス
string dataDir = "C:\\Files\\";
string templatePath = Path.Combine(dataDir, TemplateName);
// OMR エンジンの初期化
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);
Console.WriteLine("Template loaded.");
// CSVで結果を取得する
string imagePath = Path.Combine(dataDir, UserImage);
string csvResult = templateProcessor.Recognize(imagePath).GetCsv();
// CSVファイルの保存
File.WriteAllText(Path.Combine(dataDir, Path.GetFileNameWithoutExtension(UserImage) + ".csv"), csvResult);
Console.WriteLine("Result exported. Path: " + Path.Combine(dataDir, Path.GetFileNameWithoutExtension(UserImage) + ".csv"));
Console.WriteLine(csvResult);
無料ライセンスを取得する
無料の一時ライセンスを取得して、評価制限なしでライブラリを試すことができます。
Aspose.OMR for .NET – 学習リソース
画像から OMR データを抽出するだけでなく、以下のリソースを使用して、Aspose.OMR について詳しく学び、ライブラリの他の機能を探索することができます。
結論
この記事では、C# でバーコード付きの OMR シートを作成して読み取る方法を学びました。 OMR データを CSV 形式で抽出して保存する方法についても説明しました。この記事で説明されている手順に従うことで、Aspose.OMR を利用して独自の OMR アプリケーションを開発できます。不明な点がある場合は、無料サポート フォーラムまでお気軽にお問い合わせください。