观看 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。
支持 Tesseract 3、Tesseract 4 和 Tesseract 5,适用于 .NET Framework、Standard、Core、Xamarin 和 Mono。
Text
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
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(魔方 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通过它强大的IronTesseract DLL扩展了Google Tesseract的功能——一个稳定性更好、精度更高的原生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天。几分钟内即可启动和运行。
在产品试用期间,全面访问我们的支持工程团队
无需信用卡或账户创建
您的试用密钥应该在邮件中。如果没有,请联系support@ironsoftware.com
许可证起价 $749。 有问题吗?联系我们。
预订无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
预定一次 30 分钟的个人演示。
无合约、无卡号、无任何长期承诺。
版权所有 © Iron Software 2013-2025