观看 David Jones,Agorus,与 Iron Suite 创造新的效益
观看 Milan Jovanović 使用 IronPDF
观看我们的团队演示产品
using IronOcr; string imageText = new IronTesseract().Read(@"images\image.png").Text;
Imports IronOcr Private imageText As String = (New IronTesseract()).Read("images\image.png").Text
Install-Package IronOcr
IronOCR 的独特之处在于它能够自动检测和读取扫描不完美的图像和 PDF 文档中的文本。 IronTesseract类提供了最简单的 API。
IronTesseract
尝试其他代码示例,以获得对 C# OCR 操作的更精细控制。
IronOCR 提供目前已知最先进的 Tesseract 版本,可在任何平台上运行,速度更快、精度更高,并具有原生 DLL 和 API。
支持 .NET Framework、Standard、Core、Xamarin 和 Mono 的 Tesseract 3、Tesseract 4 和 Tesseract 5。
Read
Text
探索 IronTesseract C# OCR 使用指南
using IronOcr; using System; var ocrTesseract = new IronTesseract(); ocrTesseract.Language = OcrLanguage.Arabic; using (var ocrInput = new OcrInput()) { ocrInput.LoadImage(@"images\arabic.gif"); var ocrResult = ocrTesseract.Read(ocrInput); Console.WriteLine(ocrResult.Text); } // Example with a Custom Trained Font Being used: var ocrTesseractCustomerLang = new IronTesseract(); ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata"); ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest); using (var ocrInput = new OcrInput()) { ocrInput.LoadPdf(@"images\mixed-lang.pdf"); var ocrResult = ocrTesseractCustomerLang.Read(ocrInput); Console.WriteLine(ocrResult.Text); }
Imports IronOcr Imports System Private ocrTesseract = New IronTesseract() ocrTesseract.Language = OcrLanguage.Arabic Using ocrInput As New OcrInput() ocrInput.LoadImage("images\arabic.gif") Dim ocrResult = ocrTesseract.Read(ocrInput) Console.WriteLine(ocrResult.Text) End Using ' Example with a Custom Trained Font Being used: Dim ocrTesseractCustomerLang = New IronTesseract() ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata") ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest) Using ocrInput As New OcrInput() ocrInput.LoadPdf("images\mixed-lang.pdf") Dim ocrResult = ocrTesseractCustomerLang.Read(ocrInput) Console.WriteLine(ocrResult.Text) End Using
IronOCR 语言支持 IronOCR 支持 125 种国际语言。 除了默认安装的英语之外,还可以通过 NuGet 将其他语言包添加到您的 .NET 项目中,或者从我们的语言页面下载其他语言包。 大多数语言都提供快速、标准(推荐)和最佳质量三种版本。 最佳质量选项可能提供更准确的结果,但处理时间也会更慢。 使用 IronOCR 探索多种语言的 OCR 技术。
IronOCR 支持 125 种国际语言。 除了默认安装的英语之外,还可以通过 NuGet 将其他语言包添加到您的 .NET 项目中,或者从我们的语言页面下载其他语言包。
大多数语言都提供快速、标准(推荐)和最佳质量三种版本。 最佳质量选项可能提供更准确的结果,但处理时间也会更慢。
使用 IronOCR 探索多种语言的 OCR 技术。
using IronOcr; using IronSoftware.Drawing; // We can delve deep into OCR results as an object model of // Pages, Barcodes, Paragraphs, Lines, Words and Characters // This allows us to explore, export and draw OCR content using other APIs/ var ocrTesseract = new IronTesseract(); ocrTesseract.Configuration.ReadBarCodes = true; using var ocrInput = new OcrInput(); var pages = new int[] { 1, 2 }; ocrInput.LoadImageFrames("example.tiff", pages); OcrResult ocrResult = ocrTesseract.Read(ocrInput); foreach (var page in ocrResult.Pages) { // Page object int PageNumber = page.PageNumber; string PageText = page.Text; int PageWordCount = page.WordCount; // null if we dont set Ocr.Configuration.ReadBarCodes = true; OcrResult.Barcode[] Barcodes = page.Barcodes; AnyBitmap PageImage = page.ToBitmap(ocrInput); double PageWidth = page.Width; double PageHeight = page.Height; double PageRotation = page.Rotation; // angular correction in degrees from OcrInput.Deskew() foreach (var paragraph in page.Paragraphs) { // Pages -> Paragraphs int ParagraphNumber = paragraph.ParagraphNumber; string ParagraphText = paragraph.Text; AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput); int ParagraphX_location = paragraph.X; int ParagraphY_location = paragraph.Y; int ParagraphWidth = paragraph.Width; int ParagraphHeight = paragraph.Height; double ParagraphOcrAccuracy = paragraph.Confidence; OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection; foreach (var line in paragraph.Lines) { // Pages -> Paragraphs -> Lines int LineNumber = line.LineNumber; string LineText = line.Text; AnyBitmap LineImage = line.ToBitmap(ocrInput); int LineX_location = line.X; int LineY_location = line.Y; int LineWidth = line.Width; int LineHeight = line.Height; double LineOcrAccuracy = line.Confidence; double LineSkew = line.BaselineAngle; double LineOffset = line.BaselineOffset; foreach (var word in line.Words) { // Pages -> Paragraphs -> Lines -> Words int WordNumber = word.WordNumber; string WordText = word.Text; AnyBitmap WordImage = word.ToBitmap(ocrInput); int WordX_location = word.X; int WordY_location = word.Y; int WordWidth = word.Width; int WordHeight = word.Height; double WordOcrAccuracy = word.Confidence; foreach (var character in word.Characters) { // Pages -> Paragraphs -> Lines -> Words -> Characters int CharacterNumber = character.CharacterNumber; string CharacterText = character.Text; AnyBitmap CharacterImage = character.ToBitmap(ocrInput); int CharacterX_location = character.X; int CharacterY_location = character.Y; int CharacterWidth = character.Width; int CharacterHeight = character.Height; double CharacterOcrAccuracy = character.Confidence; // Output alternative symbols choices and their probability. // Very useful for spellchecking OcrResult.Choice[] Choices = character.Choices; } } } } }
Imports IronOcr Imports IronSoftware.Drawing ' We can delve deep into OCR results as an object model of ' Pages, Barcodes, Paragraphs, Lines, Words and Characters ' This allows us to explore, export and draw OCR content using other APIs/ Private ocrTesseract = New IronTesseract() ocrTesseract.Configuration.ReadBarCodes = True Dim ocrInput As New OcrInput() Dim pages = New Integer() { 1, 2 } ocrInput.LoadImageFrames("example.tiff", pages) Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput) For Each page In ocrResult.Pages ' Page object Dim PageNumber As Integer = page.PageNumber Dim PageText As String = page.Text Dim PageWordCount As Integer = page.WordCount ' null if we dont set Ocr.Configuration.ReadBarCodes = true; Dim Barcodes() As OcrResult.Barcode = page.Barcodes Dim PageImage As AnyBitmap = page.ToBitmap(ocrInput) Dim PageWidth As Double = page.Width Dim PageHeight As Double = page.Height Dim PageRotation As Double = page.Rotation ' angular correction in degrees from OcrInput.Deskew() For Each paragraph In page.Paragraphs ' Pages -> Paragraphs Dim ParagraphNumber As Integer = paragraph.ParagraphNumber Dim ParagraphText As String = paragraph.Text Dim ParagraphImage As AnyBitmap = paragraph.ToBitmap(ocrInput) Dim ParagraphX_location As Integer = paragraph.X Dim ParagraphY_location As Integer = paragraph.Y Dim ParagraphWidth As Integer = paragraph.Width Dim ParagraphHeight As Integer = paragraph.Height Dim ParagraphOcrAccuracy As Double = paragraph.Confidence Dim paragrapthText_direction As OcrResult.TextFlow = paragraph.TextDirection For Each line In paragraph.Lines ' Pages -> Paragraphs -> Lines Dim LineNumber As Integer = line.LineNumber Dim LineText As String = line.Text Dim LineImage As AnyBitmap = line.ToBitmap(ocrInput) Dim LineX_location As Integer = line.X Dim LineY_location As Integer = line.Y Dim LineWidth As Integer = line.Width Dim LineHeight As Integer = line.Height Dim LineOcrAccuracy As Double = line.Confidence Dim LineSkew As Double = line.BaselineAngle Dim LineOffset As Double = line.BaselineOffset For Each word In line.Words ' Pages -> Paragraphs -> Lines -> Words Dim WordNumber As Integer = word.WordNumber Dim WordText As String = word.Text Dim WordImage As AnyBitmap = word.ToBitmap(ocrInput) Dim WordX_location As Integer = word.X Dim WordY_location As Integer = word.Y Dim WordWidth As Integer = word.Width Dim WordHeight As Integer = word.Height Dim WordOcrAccuracy As Double = word.Confidence For Each character In word.Characters ' Pages -> Paragraphs -> Lines -> Words -> Characters Dim CharacterNumber As Integer = character.CharacterNumber Dim CharacterText As String = character.Text Dim CharacterImage As AnyBitmap = character.ToBitmap(ocrInput) Dim CharacterX_location As Integer = character.X Dim CharacterY_location As Integer = character.Y Dim CharacterWidth As Integer = character.Width Dim CharacterHeight As Integer = character.Height Dim CharacterOcrAccuracy As Double = character.Confidence ' Output alternative symbols choices and their probability. ' Very useful for spellchecking Dim Choices() As OcrResult.Choice = character.Choices Next character Next word Next line Next paragraph Next page
IronOCR 使用 Tesseract 5 扫描每一页,并返回一个高级结果对象。 这包含位置数据、图像、文本、统计置信度、备选符号、字体名称、字号装饰、字重以及每个元素的位置:
探索如何使用 IronOCR 读取 OCR 结果
无论是产品、集成还是授权问题,Iron 产品开发团队随时准备回答您所有问题。立即联系并与 Iron 开始对话,以便在您的项目中充分利用我们的库。
IronOCR(光学字符识别)库使开发人员在将图像转换为文本时能够快速且高效地获得结果。IronOCR适用于.NET, VB .NET和C#。我们的高端.NET应用程序适用于.NET框架,专为您——开发者——设计,以支持您的项目实现最佳性能。
OCR接收和识别文本文件、条形码、QR内容等。但是,IronOCR还提供了许多方法,允许您将OCR读取和图像中的文本添加到web、windows桌面或控制台.NET项目中,可以支持几乎无限的图像格式和文件,例如JPG、PNG、GIF、TIFF、BMP、JPEG或PDF。
尽管从图像输出中识别纯文本、字符、行和段落的结果可能并不显得直接,但您会发现,IronOCR的结果比您最初想象的更为简单。IronOCR扫描图像以校准,采用其噪声去除和过滤器来检查质量和分辨率。它检查其属性,优化OCR引擎,并使用训练过的人工智能网络来识别文本(从图像中),同样准确如人。
即便对于计算机来说,OCR也不是一个简单的过程。然而,IronOCR使得创建可搜索文档的整个过程更加快速和直接,且具有100%的准确性且仅需要最少的代码行数。
适用于 .NET, VB.NET, C#
软件不受地域界限的限制——企业需跨国运作并依赖多种语言来实现其结果。同样的,仅在单一语言支持文档识别的光学字符识别(OCR)工具在任何方面都是失败的!
通过提供多个OCR功能的多语言OCR库,您可以从扫描的PDF或扫描的图像中创建可搜索的PDF文档,支持多种语言(从法语到中文)。具有动态、可搜索词的PDF文档,可以使您、您的客户或组织在没有限制的情况下使用和重用。
关注您、贵企业及您的OCR需求,无论内置还是按需,IronOCR库提供广泛的语言支持。您下一步的.NET项目可以不再担心语言兼容性问题!
无论是阿拉伯语、西班牙语、法语、德语、希伯来语、意大利语、日语、简体中文、繁体中文(普通话)、丹麦语、英语、芬兰语、葡萄牙语、俄语、或瑞典语,只需您命名的语言,我们就能为您提供!您可以下载您偏好的语言包,或者联系我们的24/7支持获取更多语言。
第一步是使用我们的Windows Visual Studio NuGet包安装程序。
IronOCR 与其竞争对手有何不同?除了让您轻松添加 OCR 功能、提取文本和扫描旋转图像外,它还具有从不完美扫描中执行 OCR 的能力!相比之下,许多市场上现成的产品往往是僵化和不准确的,注定在现实世界的个人和企业应用中失败,因为大多数产品只支持机器打印、高分辨率和完美调整的文本。
IronOCR 扩展了 Google Tesseract 的功能,提供强大的 IronTesseract DLL — 一种本地 C# OCR 库,具有比免费的 Tesseract 库更高的稳定性和准确性。
只要手中有最好的工具,即使您手中有不完美的扫描图像或存储在您的存储文件夹中的图像 - IronOCR 的图像处理库转换可以清除噪声、旋转、减少扭曲和失真的对齐,并提高分辨率和对比度。高级光学字符识别(OCR)设置为您——编码者——提供生成最佳可搜索结果所需的工具和代码,反复如此。
搜索您需要的单词,绝不要对 99.8%-100% 的准确结果和对 PDF 文件、多帧 TIFF 文件、JPEG 和 JPEG2000、GIF、PNG、BMP、WBMP、System.Drawing.Image、System.Drawing.Bitmap、System.IO.Streams 的图像、二进制图像数据(byte[])及其他一切感到失望!
与其他.NET框架内的应用程序不同,您会发现IronOCR的软件包管理器控制台和识别文本控制台中的高级光学字符识别赋予您的用户读取多种字体(从Times New Roman到任何花哨或难以理解的字体)、粗细和样式的能力, 从完整图像或扫描图像中准确读取文本。我们能够选择图像的某些区域以提高速度和准确性。从几行到几段的多线程加快了OCR引擎的速度,并允许在多核机器上读取多个文件。
我们对于速度和准确性的声称不仅限于字符识别的过程。事实上,性能改进从安装开始,因为IronOCR的.NET OCR引擎易于安装,是一个完整且文档详尽的.NET软件库。在Visual Studio中有一个单独的NuGet包管理器安装,并与MVC、WebApp、桌面、控制台和服务器应用程序兼容。
您可以在没有任何外部网络服务、持续费用或将机密文件发送到互联网上的情况下实现99.8-100% 的OCR准确性。在没有繁琐的C++编码的情况下,IronOCR是需要完整PDF OCR支持的多个字符、单词、行、段落、文本和文件时的明确选择。
我们为寻求提升其编码的开发人员提供最佳选择,因为IronOCR开箱即用,无需性能调优或大量更改输入图像。最新的IronOCR版本工作迅速——速度高达之前版本的十倍,并且错误率减少超过250%。我们升级我们自己的版本,以支持您的目标,提供完美的OCR平台!
即便在使用移动设备时,我们完美的.NET OCR库使开发人员能够“无忧编码”,因为IronOCR支持将内容导出为一组简单的直接文本、机器编码的文本、条形码数据或结构化对象模型数据。您可以分割内容段落、行、单词、字符和图像字符串结果,用于.NET应用程序中。
从源代码到最终结果——如果您无法将其导出到应用程序,结果数据将毫无用处。IronOCR了解这一点,允许您将OCR结果导出为XHTML格式,以便能够在更广泛的应用程序范围内工作,并与复杂网站集成,更不提更快的加载时间!
然而,支持并不止于此。将OCR结果导出为可搜索的PDF文档使您、您的客户和组织能够在需要时轻松存储和检索PDF文档!这尤其有益于您有一个30页的合同,可以在数据库中通过几个关键字进行搜索,也使您的公司呈现出符合标准的形象,因为可搜索的PDF文档在视觉上有障碍的人群中被证明是有益的。
除上述之外,您可以将结果导出到表示您的OCR输出、布局信息和样式信息的OCR格式,并将相关信息嵌入标准HTML中。
免费社区开发许可证。商业许可证起价$749。
C# Tesseract OCR
Jim 一直是 IronOCR 开发的领导人物。 Jim 设计和构建 OCR 的图像处理算法和读取方法。
C# OCR ASP.NET
了解 Gemma 的团队如何使用 IronOCR 从图像中读取文本用于他们的存档软件。 Gemma 分享了她自己的代码示例。
Iron团队在.NET软件组件市场拥有超过10年的经验。
直接与我们的开发团队交谈
简单明了的在线手册。
免费开发许可证。商业版起价 $749。
通过 NuGet 或 DLL 在几分钟内开始使用。
无需信用卡
试用表单已成功提交。您的试用密钥应在电子邮件中。如果没有,请联系我们support@ironsoftware.com
您的试用密钥应在电子邮件中。如果没有,请联系我们support@ironsoftware.com
在生产环境中测试,没有水印。在您需要的地方使用。
使用功能齐全的产品30天。几分钟内即可启动和运行。
在产品试用期间,全面访问我们的支持工程团队
我们产品及其关键功能的在线演示
获取项目特定功能建议
我们会回答您的所有问题,确保您获得所需的全部信息。(无任何承诺)。
请检查您的电子邮件以获取试用许可证密钥。
如果您没有收到电子邮件,请启动live chat或发送电子邮件至support@ironsoftware.com
预订无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
预定一次 30 分钟的个人演示。
无合约、无卡号、无任何长期承诺。
版权所有 © Iron Software 2013-2025