ByteScout Text Recognition SDK - C# - Use Image Preprocessing Filters - ByteScout

ByteScout Text Recognition SDK – C# – Use Image Preprocessing Filters

  • Home
  • /
  • Articles
  • /
  • ByteScout Text Recognition SDK – C# – Use Image Preprocessing Filters

How to use image preprocessing filters in C# and ByteScout Text Recognition SDK

This code in C# shows how to use image preprocessing filters with this how to tutorial

The sample shows steps and algorithm of how to use image preprocessing filters and how to make it work in your C# application. ByteScout Text Recognition SDK is the software development kit for automatic text recognition and OCR from pdf documents and images. Can recognize English and non-English languages. It can use image preprocessing filters in C#.

Fast application programming interfaces of ByteScout Text Recognition SDK for C# plus the instruction and the code below will help you quickly learn how to use image preprocessing filters. In order to implement the functionality, you should copy and paste this code for C# below into your code editor with your app, compile and run your application. Test C# sample code examples whether they respond your needs and requirements for the project.

ByteScout free trial version is available for download from our website. It includes all these programming tutorials along with source code samples.

Try it today: Get 60 Day Free Trial or sign up for Web API

using System; using System.Diagnostics; using ByteScout.TextRecognition; namespace TextRecognitionExample { class Program { static void Main(string[] args) { string inputDocument = @".\skewed.png"; string outputDocument = @".\result.txt"; // Create and activate TextRecognizer instance using (TextRecognizer textRecognizer = new TextRecognizer("demo", "demo")) { try { // Load document (image or PDF) textRecognizer.LoadDocument(inputDocument); // Set the location of OCR language data files textRecognizer.OCRLanguageDataFolder = @"c:\Program Files\ByteScout Text Recognition SDK\ocrdata_best\"; // Set OCR language. // "eng" for english, "deu" for German, "fra" for French, "spa" for Spanish, etc. - according to files in "ocrdata" folder // Find more language files at textRecognizer.OCRLanguage = "eng"; // Add deskew filter that automatically rotates the image to make the text horizontal. // Note, it analyzes the left edge of scanned text. Any dark artifacts may prevent // the correct angle detection. textRecognizer.ImagePreprocessingFilters.AddDeskew(); // Other filters that may be useful to improve recognition // (note, the filters are applied in the order they were added): // Improve image contrast. //textRecognizer.ImagePreprocessingFilters.AddContrast(); // Apply gamma correction. //textRecognizer.ImagePreprocessingFilters.AddGammaCorrection(); // Apply median filter. Helps to remove noise. //textRecognizer.ImagePreprocessingFilters.AddMedian(); // Apply dilate filter. Helps to cure symbols erosion. //textRecognizer.ImagePreprocessingFilters.AddDilate(); // Lines removers. Removing borders of some tables may improve the recognition. //textRecognizer.ImagePreprocessingFilters.AddHorizontalLinesRemover(); //textRecognizer.ImagePreprocessingFilters.AddVerticalLinesRemover(); // Recognize text from all pages and save it to file textRecognizer.SaveText(outputDocument); // Open the result file in default associated application (for demo purposes) Process.Start(outputDocument); } catch (Exception exception) { Console.WriteLine(exception); } } // Console.WriteLine(); // Console.WriteLine("Press any key..."); // Console.ReadKey(); } } }

Try it today: Get 60 Day Free Trial or sign up for Web API

<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns=""> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>8.0.30703</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{A76FCB4A-8C36-4107-AC0E-26C659745F55}</ProjectGuid> <OutputType>Exe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>TextRecognitionExample</RootNamespace> <AssemblyName>TextRecognitionExample</AssemblyName> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkProfile>Client</TargetFrameworkProfile> <FileAlignment>512</FileAlignment> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> <DebugSymbols>true</DebugSymbols> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <DebugType>full</DebugType> <PlatformTarget>AnyCPU</PlatformTarget> <ErrorReport>prompt</ErrorReport> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'"> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <Optimize>true</Optimize> <DebugType>pdbonly</DebugType> <PlatformTarget>AnyCPU</PlatformTarget> <ErrorReport>prompt</ErrorReport> <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets> <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules> </PropertyGroup> <ItemGroup> <Reference Include="ByteScout.TextRecognition"> <HintPath>C:\Program Files\ByteScout Text Recognition SDK\net4.00\ByteScout.TextRecognition.dll</HintPath> </Reference> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Drawing" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="Program.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> <Content Include="..\..\skewed.png"> <Link>skewed.png</Link> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> --> </Project>

Try it today: Get 60 Day Free Trial or sign up for Web API

Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextRecognitionExample", "TextRecognitionExample.csproj", "{A76FCB4A-8C36-4107-AC0E-26C659745F55}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {A76FCB4A-8C36-4107-AC0E-26C659745F55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A76FCB4A-8C36-4107-AC0E-26C659745F55}.Debug|Any CPU.Build.0 = Debug|Any CPU {A76FCB4A-8C36-4107-AC0E-26C659745F55}.Release|Any CPU.ActiveCfg = Release|Any CPU {A76FCB4A-8C36-4107-AC0E-26C659745F55}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal

Try it today: Get 60 Day Free Trial or sign up for Web API


Get 60 Day Free Trial or Visit ByteScout Text Recognition SDK page

Explore ByteScout Text Recognition SDK documentation


Sign Up for free Web API key

Explore Web API Documentation