Results 1 to 1 of 1

Thread: Windows.Media.Ocr scan by column and not by row

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Jul 2013
    Posts
    108

    Windows.Media.Ocr scan by column and not by row

    I'm using Windows.Media.Ocr to scan some text, but instead to scan by row it scans by column.
    For example, if I try to scan
    Name:  1.jpg
Views: 558
Size:  11.6 KB

    the ocr output is:
    0.00003829 0.00003821 0.00003821 0.00003821 0.00003830 0.00003829 236.1K 552.7K 575.4K 306.9K 77K 402K
    Instead of:
    0.00003829 236.1K
    0.00003821 552.7K
    0.00003821 575.4K
    0.00003821 306.9K
    0.00003830 77K
    0.00003829 402K
    The code I'm using is:
    Code:
    Imports Windows.Media.Ocr
    Imports System.IO
    Imports System.Runtime.InteropServices.WindowsRuntime
    Public Class Form1
    
        Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim softwareBmp As Windows.Graphics.Imaging.SoftwareBitmap
            Using bmp As Bitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height)
                Using g As Graphics = Graphics.FromImage(bmp)
                    Dim pt As Point = Me.PointToScreen(New Point(PictureBox1.Left, PictureBox1.Top))
                    g.CopyFromScreen(pt.X, pt.Y, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy)
                    Using memStream = New Windows.Storage.Streams.InMemoryRandomAccessStream()
                        bmp.Save(memStream.AsStream(), System.Drawing.Imaging.ImageFormat.Bmp)
                        Dim decoder As Windows.Graphics.Imaging.BitmapDecoder = Await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(memStream)
                        softwareBmp = Await decoder.GetSoftwareBitmapAsync()
                    End Using
                End Using
            End Using
    
            Dim ocrEng = OcrEngine.TryCreateFromLanguage(New Windows.Globalization.Language("en-US"))
    
            Dim languages As IReadOnlyList(Of Windows.Globalization.Language) = ocrEng.AvailableRecognizerLanguages
            For Each language In languages
                Console.WriteLine(language.LanguageTag)
            Next
            Dim r = ocrEng.RecognizerLanguage
            Dim n = ocrEng.MaxImageDimension
            Dim ocrResult = Await ocrEng.RecognizeAsync(softwareBmp)
            RichTextBox1.Text = ocrResult.Text
        End Sub
    End Class

    How can I make the ocr to scan like I want? Thanks
    Last edited by matty95srk; Jan 5th, 2022 at 08:44 AM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width