光学式マーク認識操作を実行することにより、画像上の特定のマークを認識することができます。たとえば、質問票、調査、または試験のために記入されたバブルを多肢選択問題の形式で認識することができます。詳細については、次のセクションを参照してください。

光学式マーク認識– C#APIのインストール

DownloadsセクションからDLLをダウンロードするか、NuGetギャラリーから次のインストールコマンドを使用して、C#アプリケーションでAspose.OMR for .NETAPIを構成できます。

PM> Install-Package Aspose.OMR

C#でOMRを使用してMemoryStreamから画像を認識する

画像がデータベースまたはリモートリソースに保存されている場合があり、それらのファイルをMemoryStreamにロードできます。同様に、ディスクにイメージを保存してから処理のためにロードすることがオーバーヘッドになる可能性がある多くのシナリオがあります。そのため、画像をストリームに簡単にロードして、OMR操作を実行できます。以下は、MemoryStreamから画像を認識する手順です。

  1. 認識できるテンプレートを入手します。
  2. OmrEngineクラスオブジェクトを初期化します。
  3. MemoryStreamの画像をRecognizeImageメソッドで認識します。
  4. RecognitionResultクラスインスタンスを使用して出力ファイルを保存します。

次のコードは、C#でOMRを使用してMemoryStreamから画像を認識する方法を示しています。

// 認識するテンプレートを取得する
string templatePath = "Sheet.omr";

// 認識のための画像を取得
string imagePath = "Sheet1.JPG";

// OmrEngineクラスオブジェクトを初期化します
OmrEngine engine = new OmrEngine();

// 認識用のテンプレートを設定します
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);

using (Image image = Image.FromFile(imagePath))
{
    using (MemoryStream ms = new MemoryStream())
    {
        image.Save(ms, image.RawFormat);
        ms.Flush();

        // 画像を認識する
        Aspose.OMR.Model.RecognitionResult result = templateProcessor.RecognizeImage(ms);

        var stringRes = result.GetCsv();
        File.WriteAllText(Path.GetFileNameWithoutExtension(imagePath) + ".csv", stringRes);
    }
}

C#を使用したOMRでの認識のための画像のバッチ処理

フォルダ内の画像のバッチを処理し、光学式マーク認識でマークを認識することができます。画像のバッチを認識するために、次の手順に従ってください。

  1. 認識できるOMRテンプレートを取得します。
  2. RecognizeFolderメソッドを使用して、すべての画像のRecognitionResultを取得します。
  3. 出力をCSVファイルとして保存します。

以下のコードは、C#を使用してプログラムで光学式マーク認識のために画像のバッチを処理する方法を説明しています。

// 認識するテンプレートを取得する
string templatePath = "Sheet.omr";

// Getフォルダーには認識用の画像が含まれています
string folderPath = "D:\images\";

OmrEngine engine = new OmrEngine();

// 認識用のテンプレートを設定します
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);

// フォルダから画像を認識する
Aspose.OMR.Model.RecognitionResult[] result = templateProcessor.RecognizeFolder(folderPath);

for (int i = 0; i < result.Length; i++)
{
    var stringRes = result[i].GetCsv();
    File.WriteAllText(folderPath  + (i+1) + ".csv", stringRes);
}

無料のAPIライセンスを取得する

無料一時ライセンスをリクエストすることで、制限なくAPIを評価できます。

結論

この記事では、C#でOMRを使用してMemoryStreamから画像を認識する方法を学習しました。また、フォルダー内のすべての画像を認識し、出力結果をCSV、コンマ区切り値、ファイルとして保存する方法についても説明します。さらに、ドキュメントにアクセスすると、APIの他の機能を確認できます。ご不明な点がございましたら、無料サポートフォーラムでいつでもご連絡いただけます。

関連項目