OMRと略される光学式マーク認識は、アンケート、調査、およびその他の情報収集基準を評価するために頻繁に使用されます。この記事では、.NETアプリケーションでC#言語を使用して、OMRの質問とバブルの回答シートを作成および確認する方法を学習できます。次のアプローチについて簡単に説明します。
OMRテンプレートクリエーターおよびチェッカーAPI–インストール C#を使用してOMR質問シートのテンプレート、画像、PDFファイルを作成する C#を使用して多肢選択式バブル回答シート画像でOMRを実行する
OMRテンプレートクリエーターおよびチェッカーAPI–インストール
OMRテンプレートを作成し、C#またはVB.NETアプリケーションでOMR操作を実行するには、最初にAspose.OMR for.NET APIをインストールする必要があります。 新しいリリースから、または次のNuGetコマンドを使用して、簡単にダウンロードできます。
Install-Package Aspose.OMR -Version 20.6.0
したがって、C#を使用してAPIで多肢選択式の質問シートリソースを作成する準備が整いました。
C#を使用してOMR質問シートテンプレート、画像、およびPDFファイルを作成する
OMR質問シートリソースの作成について見ていきましょう。ここでは、サンプルの質問をTXTファイルに保存します。このファイルは、後でOMRエンジンが、OMR質問用紙のテンプレート、画像、およびPDFファイルを作成するために使用します。さらに、OMRエンジンの入力として使用するテキストマークアップは次のとおりです。
?text=Name__________________________________ Date____________
?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
#Excellent recognition results can be achieved only for filled bubbles at least for:
() 40% () 60% () 75% () 98%
#Do you have to mark up every question on the page?
(Yes) Yes, that will help a lot! (No) No
#Rate your preference from 0 to 9 with "0" being preference towards performance
and "9" being preference towards flexibility.
(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
#I found aspose omr to be a useful tool. (5 - strongly agree, 1 - strongly disagree)
(5) (4) (3) (2) (1)
?text= Answer sheet section
?answer_sheet=MainQuestions
elements_count=10
columns_count=5
?text=Sign________________________________
次に、C#コードを使用して次の手順に従い、OMR多肢選択問題シートを作成します。
- [OMRエンジン]を初期化します(https://reference.aspose.com/omr/net/aspose.omr.api/omrengine)
- テキストマークアップを使用してGenerateTemplateメソッドを呼び出します
- OMR出力質問シートを保存する
次のコードスニペットは、C#を使用してOMR質問シートテンプレート、画像、およびPDFファイルを作成する方法を示す次の手順に基づいています。
// OMRエンジンを初期化する
OmrEngine engine = new OmrEngine();
// マークアップ付きのtxtファイルへのパスを提供するテンプレート生成を呼び出します
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));
// エラーの場合はチェック
if (res.ErrorCode != 0)
{
Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}
// 次のいずれかのアプローチを使用できます
// 生成結果の保存:PDFおよび.omrテンプレート
res.SaveAsPdf(testFolderPath , "Grid");
// 生成結果の保存:画像と.omrテンプレート
res.Save(testFolderPath, "Grid");
そのため、次のスクリーンショットに示すように、OMR質問用紙を作成しました。必要に応じて、生成されたPDFファイルまたは画像を印刷して紙を配布することができます。
C#を使用して多肢選択式バブル回答シート画像でOMRを実行する
最後に、生成されたバブル回答シートで回答を収集してから画像をキャプチャするか、C#を使用してOMRを実行するためにそれらをスキャンします。この例では、次のサンプル画像を考えてみましょう。 Aspose.OMR for .NET APIは、OMRの実行の出力としてコンマ区切り(CSV)ファイルを作成します。
C#を使用してOMRを実行するには、次の手順に従います。
- テンプレートファイルのパスを指定します
- スキャンした画像ファイルのパスを指定します
- TemplateProcessorを初期化します
- RecognizeImageメソッドで画像を認識する
- CSV出力をTXTファイルに書き込む
以下のコードスニペットは、C#で複数選択のバブル回答シート画像に対してOMRを実行する方法を示しています。
string TemplateName = @"Sheet.omr";
string[] UserImages = new string[] { "Sheet1.jpg" };
// 入力と出力の準備
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);
// 実際のOMRAPI呼び出し
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);
Console.WriteLine("Template loaded.");
for (int i = 0; i < UserImages.Length; i++)
{
string imagePath = Path.Combine(testFolderPath, UserImages[i]);
string csvResult = templateProcessor.RecognizeImage(imagePath).GetCsv();
File.WriteAllText(Path.Combine(outputPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"), csvResult);
Console.WriteLine("Result exported. Path: " + Path.Combine(testFolderPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"));
}
次のスクリーンショットは、出力CSVファイルがAspose.OMR for.NET APIでどれほど効率的かつ正確に生成されるかを示しています。このCSV情報は、システム設計に従ってさらに処理できるようになりました。
結論
簡単に言うと、質問シートを作成し、後でOMR操作を実行して、C#を使用してバブル回答シートの画像にマークを付ける方法を学びました。このOMRシートを作成し、画像に対してOMR操作を実行すると、さまざまな調査方法で非常に役立ちます。また、ご不明な点やご質問がございましたら、無料サポートフォーラムからお問い合わせください。