VintaSoft Imaging .NET SDK 14.1: Документация для .NET разработчика
Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr Namespace / OmrFieldTable Class
Члены типа Объект Синтаксис Example Иерархия Требования Смотрите также
    Класс OmrFieldTable
    Содержит информацию об обычной таблице полей OMR, состоящей из равномерно распределенных распознаваемых полей OMR.
    Объектная модель
    OmrField FormFieldTemplate OmrFieldTable
    Синтаксис
    Пример

    Вот C#/VB.NET код, который демонстрирует, как идентифицировать и распознать форму, содержащую группу меток (пузырьков OMR).

    ''' <summary>
    ''' Recognizes the form with a group of marks (OMR bubbles).
    ''' </summary>
    ''' <param name="formRecognitionManager">The form recognition manager.</param>
    ''' <param name="image">The image.</param>
    Public Shared Sub RecognizeFormWithOmrFieldTables(formRecognitionManager As Vintasoft.Imaging.FormsProcessing.FormRecognitionManager, image As Vintasoft.Imaging.VintasoftImage)
        ' if your form template contains OCR fields,
        ' make sure OCR engine manager is initialized before recognition
        ' (otherwise recognition will return null (Nothing)),
        ' see OCR field recognition examples
    
        ' recognize filled form in an image
        Dim recognitionResult As Vintasoft.Imaging.FormsProcessing.FormRecognitionResult = formRecognitionManager.Recognize(image)
    
        ' get the result of image comparison
        Dim imageCompareResult As Vintasoft.Imaging.FormsProcessing.TemplateMatching.ImageImprintCompareResult = recognitionResult.TemplateMatchingResult.ImageCompareResult
        ' if result is not reliable
        If Not imageCompareResult.IsReliable Then
            ' matching template is not found
            System.Console.WriteLine("Matching template is not found.")
        Else
            ' get recognized page
            Dim recognizedPage As Vintasoft.Imaging.FormsProcessing.FormRecognition.FormPage = recognitionResult.RecognizedPage
            ' get form field count
            If recognizedPage.Items.Count = 0 Then
                System.Console.WriteLine("No form fields were recognized.")
            Else
                System.Console.WriteLine(String.Format("Recognized form field count: {0}", recognizedPage.Items.Count))
                ' for each recognized form field
                For Each recognizedField As Vintasoft.Imaging.FormsProcessing.FormRecognition.FormField In recognizedPage.Items
                    If TypeOf recognizedField Is Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTable Then
                        Dim omrFieldTable As Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTable = DirectCast(recognizedField, Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTable)
                        Dim omrTemplateTable As Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTemplateTable = TryCast(omrFieldTable.FieldTemplate, Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTemplateTable)
                        ' write field info
                        System.Console.WriteLine(String.Format("  OMR field table: name: {0}; value: {1}; confidence: {2:F1}%; row count: {3}; column count: {4}", omrFieldTable.Name, omrFieldTable.Value, omrFieldTable.Confidence * 100, omrTemplateTable.RowCount, omrTemplateTable.ColumnCount))
                    End If
                Next
            End If
        End If
    End Sub
    
    
    /// <summary>
    /// Recognizes the form with a group of marks (OMR bubbles).
    /// </summary>
    /// <param name="formRecognitionManager">The form recognition manager.</param>
    /// <param name="image">The image.</param>
    public static void RecognizeFormWithOmrFieldTables(
        Vintasoft.Imaging.FormsProcessing.FormRecognitionManager formRecognitionManager,
        Vintasoft.Imaging.VintasoftImage image)
    {
        // if your form template contains OCR fields,
        // make sure OCR engine manager is initialized before recognition
        // (otherwise recognition will return null (Nothing)),
        // see OCR field recognition examples
    
        // recognize filled form in an image
        Vintasoft.Imaging.FormsProcessing.FormRecognitionResult recognitionResult = 
            formRecognitionManager.Recognize(image);
    
        // get the result of image comparison
        Vintasoft.Imaging.FormsProcessing.TemplateMatching.ImageImprintCompareResult imageCompareResult =
            recognitionResult.TemplateMatchingResult.ImageCompareResult;
        // if result is not reliable
        if (!imageCompareResult.IsReliable)
        {
            // matching template is not found
            System.Console.WriteLine("Matching template is not found.");
        }
        else
        {
            // get recognized page
            Vintasoft.Imaging.FormsProcessing.FormRecognition.FormPage recognizedPage = 
                recognitionResult.RecognizedPage;
            // get form field count
            if (recognizedPage.Items.Count == 0)
            {
                System.Console.WriteLine("No form fields were recognized.");
            }
            else
            {
                System.Console.WriteLine(string.Format(
                    "Recognized form field count: {0}",
                    recognizedPage.Items.Count));
                // for each recognized form field
                foreach (Vintasoft.Imaging.FormsProcessing.FormRecognition.FormField recognizedField in recognizedPage.Items)
                {
                    if (recognizedField is Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTable)
                    {
                        Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTable omrFieldTable = 
                            (Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTable)recognizedField;
                        Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTemplateTable omrTemplateTable =
                            omrFieldTable.FieldTemplate as Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrFieldTemplateTable;
                        // write field info
                        System.Console.WriteLine(string.Format(
                            "  OMR field table: name: {0}; value: {1}; confidence: {2:F1}%; row count: {3}; column count: {4}",
                            omrFieldTable.Name,
                            omrFieldTable.Value,
                            omrFieldTable.Confidence * 100,
                            omrTemplateTable.RowCount,
                            omrTemplateTable.ColumnCount));
                    }
                }
            }
        }
    }
    
    

    Иерархия наследования
    Требования

    Целевые платформы: .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    Смотрите также