IronOCR How-Tos .NET MAUI OCR How to use Computer Vision to Find Text Chaknith Bin Updated:July 28, 2025 IronOCR utilizes OpenCV to use Computer Vision to detect areas where text exists in an image. This is useful for images that contain a lot of noise, images with text in many different places, and images where text is warped. The use of computer vision in IronOCR will determine where text regions exist and then use Tesseract to attempt to read those regions. How to OCR License Plate in C# (Tutorial) How to Get Text From Invoice in C# Tutorial How to OCR Get Text From Screenshot in C# How to OCR Subtitles in C# (Tutorial) Steps to Use OCR With Computer Vision Download C# library to use OCR with Computer Vision Utilize FindTextRegion method to auto detect text regions Check which text region got detected with StampCropRectangleAndSaveAs method Use computer vision to separate the original image into images based on text regions with FindMultipleTextRegions method Use GetTextRegions method to get crop areas list where text was detected IronOCR.ComputerVision Installation via NuGet Package OpenCV methods that perform Computer Vision in IronOCR are visible in the regular IronOCR NuGet package. Use of these methods requires NuGet installation of IronOcr.ComputerVision to the solution. You are prompted to download it if you do not have it installed. Windows: IronOcr.ComputerVision.Windows Linux: IronOcr.ComputerVision.Linux macOS: IronOcr.ComputerVision.MacOS macOS ARM: IronOcr.ComputerVision.MacOS.ARM Install using the NuGet Package Manager or paste the following in the Package Manager Console: Install-Package IronOcr.ComputerVision.Windows This will provide the necessary assemblies to use IronOCR Computer Vision with our model file. Functionality and API Code Examples are included further down this tutorial. Here is a general overview of the methods that are currently available: Method Explanation FindTextRegion Detect regions which contain text elements and instruct Tesseract to only search for text within the area in which text was detected. FindMultipleTextRegions Detect areas which contain text elements and divide the page into separate images based on text regions. GetTextRegions Scans the image and returns a list of text regions as `List`. FindTextRegion Usage of FindTextRegion will use computer vision to detect regions which contain text elements on every page of an OcrInput object. :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-1.cs using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("/path/file.png"); input.FindTextRegion(); OcrResult result = ocr.Read(input); string resultText = result.Text; Imports IronOcr Private ocr = New IronTesseract() Private input = New OcrInput() input.LoadImage("/path/file.png") input.FindTextRegion() Dim result As OcrResult = ocr.Read(input) Dim resultText As String = result.Text $vbLabelText $csharpLabel Can optionally be called with custom parameters: :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-2.cs using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("/path/file.png"); input.FindTextRegion(Scale: 2.0, DilationAmount: 20, Binarize: true, Invert: true); OcrResult result = ocr.Read(input); string resultText = result.Text; Imports IronOcr Private ocr = New IronTesseract() Private input = New OcrInput() input.LoadImage("/path/file.png") input.FindTextRegion(Scale:= 2.0, DilationAmount:= 20, Binarize:= True, Invert:= True) Dim result As OcrResult = ocr.Read(input) Dim resultText As String = result.Text $vbLabelText $csharpLabel In this example, I will use the following image for a method I am writing which needs to crop to areas containing text but input images may vary in text location. In this case, I can use FindTextRegion to narrow down the scan to an area that Computer Vision has detected text. This is an example image: :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-3.cs using IronOcr; using IronSoftware.Drawing; using System; using System.Linq; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("wh-words-sign.jpg"); // Find the text region using Computer Vision Rectangle textCropArea = input.GetPages().First().FindTextRegion(); // For debugging and demonstration purposes, lets see what region it found: input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png); // Looks good, so let us apply this region to hasten the read: var ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea); Console.WriteLine(ocrResult.Text); Imports IronOcr Imports IronSoftware.Drawing Imports System Imports System.Linq Private ocr = New IronTesseract() Private input = New OcrInput() input.LoadImage("wh-words-sign.jpg") ' Find the text region using Computer Vision Dim textCropArea As Rectangle = input.GetPages().First().FindTextRegion() ' For debugging and demonstration purposes, lets see what region it found: input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png) ' Looks good, so let us apply this region to hasten the read: Dim ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea) Console.WriteLine(ocrResult.Text) $vbLabelText $csharpLabel Now this code has two outputs, the first is a .png file saved by StampCropRectangleAndSaveAs which is used for debugging. We can see where IronCV (Computer Vision) thought the text was: Looks pretty good. Now the second output is the Text itself which is: IRONSOFTWARE 50,000+ Developers in our active community 10,777,061 19,313 NuGet downloads Support tickets resolved 50%+ 80%+ Engineering Team growth Support Team growth $25,000+ Raised with #TEAMSEAS to clean our beaches & waterways FindMultipleTextRegions Usage of FindMultipleTextRegions takes all pages of an OcrInput object and uses computer vision to detect areas which contain text elements and divide the input into separate images based on text regions: :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-1.cs using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("/path/file.png"); input.FindMultipleTextRegions(); OcrResult result = ocr.Read(input); string resultText = result.Text; Imports IronOcr Private ocr = New IronTesseract() Private input = New OcrInput() input.LoadImage("/path/file.png") input.FindMultipleTextRegions() Dim result As OcrResult = ocr.Read(input) Dim resultText As String = result.Text $vbLabelText $csharpLabel Can optionally be called with custom parameters: :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-2.cs using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("/path/file.png"); input.FindMultipleTextRegions(Scale: 2.0, DilationAmount: -1, Binarize: true, Invert: false); OcrResult result = ocr.Read(input); string resultText = result.Text; Imports IronOcr Private ocr = New IronTesseract() Private input = New OcrInput() input.LoadImage("/path/file.png") input.FindMultipleTextRegions(Scale:= 2.0, DilationAmount:= -1, Binarize:= True, Invert:= False) Dim result As OcrResult = ocr.Read(input) Dim resultText As String = result.Text $vbLabelText $csharpLabel Another overload method of FindMultipleTextRegions takes an OCR Page and returns a list of OCR Pages, one for each Text region on it: :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-3.cs using IronOcr; using System.Collections.Generic; using System.Linq; int pageIndex = 0; using var input = new OcrInput(); input.LoadImage("/path/file.png"); var selectedPage = input.GetPages().ElementAt(pageIndex); List<OcrInputPage> textRegionsOnPage = selectedPage.FindMultipleTextRegions(); Imports IronOcr Imports System.Collections.Generic Imports System.Linq Private pageIndex As Integer = 0 Private input = New OcrInput() input.LoadImage("/path/file.png") Dim selectedPage = input.GetPages().ElementAt(pageIndex) Dim textRegionsOnPage As List(Of OcrInputPage) = selectedPage.FindMultipleTextRegions() $vbLabelText $csharpLabel GetTextRegions Usage of GetTextRegions returns a list of crop areas where text was detected in a page: :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs using IronOcr; using IronSoftware.Drawing; using System.Collections.Generic; using System.Linq; int pageIndex = 0; using var input = new OcrInput(); input.LoadImage("/path/file.png"); var selectedPage = input.GetPages().ElementAt(pageIndex); // List<Rectangle> regions = selectedPage.GetTextRegions(); Imports IronOcr Imports IronSoftware.Drawing Imports System.Collections.Generic Imports System.Linq Private pageIndex As Integer = 0 Private input = New OcrInput() input.LoadImage("/path/file.png") Dim selectedPage = input.GetPages().ElementAt(pageIndex) ' List<Rectangle> regions = selectedPage.GetTextRegions(); $vbLabelText $csharpLabel Specific Use Case Guides With the right settings and input files, OCR can be a very powerful tool. It can almost perfectly imitate the reading capability of a human. Frequently Asked Questions What is the purpose of using Computer Vision to find text? IronOCR uses Computer Vision to detect areas where text exists in an image, which helps in processing images with noise, text in different places, or warped text. How can I install the necessary components for Computer Vision via NuGet? You can install IronOCR.ComputerVision via NuGet by using the Package Manager Console with the command: Install-Package IronOcr.ComputerVision.Windows. There are also packages available for Linux and macOS. What does the FindTextRegion method do? The FindTextRegion method in IronOCR detects regions in an image that contain text elements and instructs Tesseract to only search for text within those areas. Can I use custom parameters with text region detection methods? Yes, you can provide custom parameters to the FindTextRegion method in IronOCR to refine detection, such as setting the minimum text height and allowing subregions. What is the purpose of detecting multiple text regions in an image? The FindMultipleTextRegions method in IronOCR is used to detect areas with text and divide the input into separate images based on these text regions. How can I retrieve areas where text was detected? You can use the GetTextRegions method in IronOCR on an OcrInput object to get a list of CropRectangle areas where text was detected. What are the installation packages available for Computer Vision? Installation packages for IronOCR.ComputerVision are available for Windows, Linux, macOS, and macOS ARM. How are images with multiple text regions processed? IronOCR can handle images with multiple text regions using the FindMultipleTextRegions method, which divides the input into separate images based on detected text regions. Are there code examples available for using Computer Vision in image processing? Yes, the tutorial provides code examples demonstrating how to use methods like FindTextRegion and FindMultipleTextRegions with IronOCR. What is required to use Computer Vision capabilities in image processing? To use IronOCR's Computer Vision capabilities, you need to install the IronOcr.ComputerVision package through NuGet and reference the necessary namespaces in your C# project. Chaknith Bin Chat with engineering team now Software Engineer Chaknith works on IronXL and IronBarcode. He has deep expertise in C# and .NET, helping improve the software and support customers. His insights from user interactions contribute to better products, documentation, and overall experience. Ready to Get Started? Free NuGet Download Total downloads: 4,072,123 View Licenses