IronOCR 操作指南 修正图像色彩 如何修复图像颜色以便在 C# 中阅读。 Curtis Chau 已更新:2026年1月10日 下载 IronOCR NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English 使用 IronOCR 的二值化、灰度、反转和颜色替换方法在 C# 中修复图像颜色,以提高文本可读性和 OCR 准确性。 阅读特定的文本颜色,进行有针对性的提取。 as-heading:2(快速入门:隔离特定文本颜色) 使用 IronOCR 的 SelectTextColor 方法可将 OCR 聚焦于特定的文本颜色--无需复杂的图像处理。 加载图像,选择文本颜色和容差,然后只提取文本以获得准确的 OCR 结果。 立即开始使用 NuGet 创建 PDF 文件: 使用 NuGet 包管理器安装 IronOCR PM > Install-Package IronOcr 复制并运行这段代码。 new IronTesseract().Read(new IronOcr.OcrImageInput("sample.jpg").SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60)); 部署到您的生产环境中进行测试 立即开始在您的项目中使用 IronOCR,免费试用! 免费试用30天 ## 如何在 C# 中为阅读修复图像颜色 下载一个用于校正图像颜色的 C# 库 导入 PDF 文档和图像进行读取 应用色彩效果:二值化、灰度、反转和色彩替换 导出校正后的图像以供查看 使用 SelectTextColor 阅读特定文本颜色 如何对图像进行二值化以改进 OCR? 二值化将图像转换为双色格式,通常是黑白图像。这样可以将文本与背景分开并减少噪音,使文本更加清晰易读。 为什么二值化可以提高 OCR 精度? 使用 Binarize 方法应用二值化。 OCR 对于白底黑字的高对比度图像效果最佳。 这种方法可以明确区分背景和字符。 二值化技术在处理光照不均匀或背景噪音的扫描文档时表现出色。该算法会分析图像并确定最佳阈值,以分离前景文本和背景。 有关高级预处理技术,请参阅 OCR 图像优化过滤器指南。 二值化的代码实现是什么? :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-binarize-image.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("sample.jpg"); // Apply binarize affect imageInput.Binarize(); // Export the modified image imageInput.SaveAsImages("binarize.jpg"); Imports IronOcr ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Add image Private imageInput = New OcrImageInput("sample.jpg") ' Apply binarize affect imageInput.Binarize() ' Export the modified image imageInput.SaveAsImages("binarize.jpg") $vbLabelText $csharpLabel 对于批量处理,请将二值化与其他过滤器结合起来。 使用 滤镜向导 确定图像的最佳滤镜组合。 如何导出和比较结果? 使用 SaveAsImages 方法导出修改后的图像。 请比较下面二值化前后的图像。 前 后 如何将图像转换为灰度以便更好地阅读? 将图像转换为灰度可减少视觉干扰,提高可读性。 当原始颜色分散内容注意力时,这将有所帮助。 何时应使用灰度而非其他方法? 使用 ToGrayScale 方法应用灰度。 翻译过程中需要计算 R、G 和 B 值的平均值。 如果彩色背景或水印会干扰文本识别,灰度效果会很好。 与二值化不同,灰度可以保留图像中细微变化的细节。 将其用于带有嵌入式文本或复杂布局的照片。 关于低质量扫描,请参阅 修复低质量扫描和图像。 什么是灰度转换的简单代码? :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-grayscale-image.cs // Apply grayscale affect imageInput.ToGrayScale(); ' Apply grayscale affect imageInput.ToGrayScale() $vbLabelText $csharpLabel 为获得不同的图像质量,请将灰度与其他预处理步骤结合起来。 OcrInput 类文档解释了多个过滤器的连锁。 灰度与原版相比如何? 前 后 何时应反转图像颜色? 反转颜色可增强对比度。将黑底白字转换为白底黑字可以提高可读性。 如何实现颜色反转? 使用 Invert 方法反转颜色。 通过布尔值移除颜色通道并返回灰度。 颜色反转可处理负片图像或深色主题截图。 现代应用程序使用暗模式界面,对传统 OCR 提出了挑战。 反转这些图像可确保最佳识别效果。 有关各种图像类型,请参阅快速 OCR 配置指南。 :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-invert-image.cs // Apply invert affect imageInput.Invert(); ' Apply invert affect imageInput.Invert() $vbLabelText $csharpLabel 对于混合文档类型的批量处理,要实现自动深色背景检测。 IronOCR中的计算机视觉功能可识别何时需要反转。 反转选项之间有何区别? 比较有灰度和无灰度的 Invert 方法: 反转 反转和灰度化 如何替换图像中的特定颜色? 替换特定颜色以突出或淡化元素。 利用这一点来提高文本的突出度或纠正有问题的对比度。 为什么容差在颜色替换中很重要? ReplaceColor 方法需要当前颜色、新颜色和公差值。 更高的宽容度可以更好地处理模糊图像。 容差决定了像素与目标颜色的匹配程度。 低值(0-50)适合统一颜色。 较高的数值(100-200)可处理抗锯齿文本或压缩人工痕迹。 这有助于处理因渗墨或纸张纹理而产生差异的扫描文件。 如何实现颜色替换? :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-replace-color.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("sample.jpg"); IronSoftware.Drawing.Color currentColor = new IronSoftware.Drawing.Color("#DB645C"); IronSoftware.Drawing.Color newColor = IronSoftware.Drawing.Color.DarkCyan; // Replace color imageInput.ReplaceColor(currentColor, newColor, 80); // Export the modified image imageInput.SaveAsImages("replaceColor"); Imports IronOcr ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Add image Private imageInput = New OcrImageInput("sample.jpg") Private currentColor As New IronSoftware.Drawing.Color("#DB645C") Private newColor As IronSoftware.Drawing.Color = IronSoftware.Drawing.Color.DarkCyan ' Replace color imageInput.ReplaceColor(currentColor, newColor, 80) ' Export the modified image imageInput.SaveAsImages("replaceColor") $vbLabelText $csharpLabel 如何处理高级颜色替换场景? 在复杂的情况下,可进行连锁多次替换: /* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */ // Replace multiple colors in sequence using var imageInput = new OcrImageInput("multi-color-document.jpg"); // Replace red text with black imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70); // Replace blue headers with dark gray imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60); // Replace light yellow background with white imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40); // Perform OCR on the cleaned image var result = ocrTesseract.Read(imageInput); /* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */ // Replace multiple colors in sequence using var imageInput = new OcrImageInput("multi-color-document.jpg"); // Replace red text with black imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70); // Replace blue headers with dark gray imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60); // Replace light yellow background with white imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40); // Perform OCR on the cleaned image var result = ocrTesseract.Read(imageInput); Imports IronSoftware.Drawing ' Replace multiple colors in sequence Using imageInput As New OcrImageInput("multi-color-document.jpg") ' Replace red text with black imageInput.ReplaceColor(Color.Red, Color.Black, 70) ' Replace blue headers with dark gray imageInput.ReplaceColor(Color.Blue, Color.DarkGray, 60) ' Replace light yellow background with white imageInput.ReplaceColor(New Color("#FFFACD"), Color.White, 40) ' Perform OCR on the cleaned image Dim result = ocrTesseract.Read(imageInput) End Using $vbLabelText $csharpLabel 对于复杂的颜色替换,请参阅图像校正过滤器了解更多预处理技术。 颜色替换的视觉效果如何? 前 后 如何只阅读特定颜色的文本? 使用 SelectTextColor 方法读取特定的文本颜色。 指定目标颜色和容差(0-255)。 容差表示像素与所选颜色之间在 R、G 和 B 值上的允许差异。 色彩宽容度如何影响结果? :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-select-text-color.cs using IronOcr; using System; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("sample.jpg"); // Text color to focus on IronSoftware.Drawing.Color focusColor = new IronSoftware.Drawing.Color("#DB645C"); // Specify which text color to read imageInput.SelectTextColor(focusColor, 60); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); // Output result to console Console.WriteLine(ocrResult.Text); Imports IronOcr Imports System ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Add image Private imageInput = New OcrImageInput("sample.jpg") ' Text color to focus on Private focusColor As New IronSoftware.Drawing.Color("#DB645C") ' Specify which text color to read imageInput.SelectTextColor(focusColor, 60) ' Perform OCR Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput) ' Output result to console Console.WriteLine(ocrResult.Text) $vbLabelText $csharpLabel 在使用彩色编码部分的表单、提取高亮文本或阅读特定警告信息时,使用选择性彩色阅读。 关于结构化数据提取,请参阅 OcrResult 类 进行高级处理。 我可以期待从颜色选择中获得哪些输出? OCR 结果只能读取橙色文本: 如何保存已应用过滤器的修改后 PDF? IronOCR 可保存带或不带过滤器的修改过的 PDF 文件。 SaveAsSearchablePdf 方法的第二个参数指定是否应用筛选器保存。 什么是可搜索 PDF 的实现? :path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-searchable-pdf.cs using IronOcr; var ocr = new IronTesseract(); var ocrInput = new OcrInput(); // Load a PDF file ocrInput.LoadPdf("invoice.pdf"); // Apply gray scale filter ocrInput.ToGrayScale(); OcrResult result = ocr.Read(ocrInput); // Save the result as a searchable PDF with filters applied result.SaveAsSearchablePdf("outputGrayscale.pdf", true); Imports IronOcr Dim ocr As New IronTesseract() Dim ocrInput As New OcrInput() ' Load a PDF file ocrInput.LoadPdf("invoice.pdf") ' Apply gray scale filter ocrInput.ToGrayScale() Dim result As OcrResult = ocr.Read(ocrInput) ' Save the result as a searchable PDF with filters applied result.SaveAsSearchablePdf("outputGrayscale.pdf", True) $vbLabelText $csharpLabel 何时应该对保存的 PDF 应用筛选器? 在创建更简洁、更易读的文档时应用筛选器。 这有助于存档或在不同设备上共享文档。 请参阅 通过 OCR 创建可搜索 PDF 了解更多信息。 对于包含表格的复杂文档,请探索 阅读文档中的表格 以进行专门提取。 对于大批量处理,请参阅 Multithreaded Tesseract OCR 以优化跨多个文档的过滤器应用。 常见问题解答 如何解决影响 OCR 准确性的图像色彩不佳问题? IronOCR 提供多种颜色校正方法,包括二值化、灰度转换、反转和颜色替换。这些过滤器通过增强文本与背景之间的对比度来提高文本的可读性,使 OCR 引擎更容易从色彩质量较差的图像中准确提取文本。 什么是二值化,何时应将其用于 OCR? 二值化使用 IronOCR 的二值化方法将图像转换为双色格式(通常为黑白)。该方法通过分析图像并确定最佳分离阈值,可清晰区分文本和背景,对于光照不均匀或背景噪点较多的扫描文档尤为有效。 如何从图像中只提取特定颜色的文本? IronOCR 的 SelectTextColor 方法可让您将 OCR 的重点放在特定文本颜色上,而无需进行复杂的图像处理。只需指定目标颜色和容差水平--例如,SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60) --即可只提取该颜色范围内的文本。 何时应将图像转换为灰度图像,而不是使用二值化? 在处理干扰文本识别的彩色背景或水印时,请使用 IronOCR 的 ToGrayScale 方法。与二值化不同,灰度保留了具有微妙变化的图像细节,因此在需要保持图像质量的同时减少视觉干扰时非常理想。 我能否导出校正后的图像以查看滤色器的效果? 是的,IronOCR 提供了 SaveAsImages 方法,用于导出应用色彩校正后修改的图像。这样您就可以比较前后的结果,帮助您确定哪种色彩校正方法最适合您的特定图像。 如何确定图像的最佳色彩校正滤镜? IronOCR 包含一个滤镜向导工具,可帮助确定图像的最佳滤镜组合。对于批量处理,您可以将二值化等多个过滤器与其他预处理技术相结合,以实现适合您文档类型的最佳 OCR 结果。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 审核者 Jeffrey T. Fritz 首席项目经理 - .NET 社区团队 Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。 准备开始了吗? Nuget 下载 5,384,824 | 版本: 2026.2 刚刚发布 免费 NuGet 下载 总下载量:5,384,824 查看许可证