如何为阅读修正图像颜色

This article was translated from English: Does it need improvement?
Translated
View the article in English

查克尼特·宾

修复图像颜色涉及多种技术,以提高图像的可读性和质量。IronOcr 提供二值化、灰度、反转和颜色替换等方法,使图像中的文本和内容更具可读性和美观性,这在使用 OCR 时尤为重要。 (光学字符识别) 从图像中提取文本。还可以只读取所选文本的颜色。


适用于OCR的C# NuGet库

安装使用 NuGet

Install-Package IronOcr
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于OCR的C# NuGet库

安装使用 NuGet

Install-Package IronOcr
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronOCRNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变OCR。

适用于OCR的C# NuGet库 nuget.org/packages/IronOcr/
Install-Package IronOcr

考虑安装 IronOCR DLL 直接。下载并手动安装到您的项目或GAC表单中: IronOcr.zip

手动安装到你的项目中

下载DLL

图像二值化示例

此过程将图像转换为双色格式,通常为黑白。它有助于将文字从背景中分离出来并减少噪点,使文字更加清晰易读。

要对图像应用二值化效果,请使用 "二值化 "方法。由于 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");
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")
VB   C#

为方便起见,您可以使用 "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()
VB   C#
图片样本
灰度图像

反转图像示例

反转颜色可以增强对比度。例如,将黑底白字变成白底黑字可以提高可读性。

使用 Invert 方法反转图像颜色。该方法可选择接受一个布尔值,用于移除所有颜色通道并返回灰度图像。

: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()
VB   C#

下面的图片显示了使用和不使用灰度选项时的反转方法。

倒置 image
倒置 and grayscaled image

替换颜色示例

这项技术可以用其他颜色替换图像中的特定颜色,从而帮助突出或淡化某些元素。它通常用于使文字更突出或纠正有问题的色彩对比。

要使用 ReplaceColor 方法,请指定要替换的当前颜色和新颜色。该方法的第三个参数也很重要,它与容差值相对应。在图像模糊的情况下,需要较高的容差值才能达到预期效果。

: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")
VB   C#
图片样本
替换彩色图像

阅读特定文本颜色示例

此功能只读取指定的文本颜色。使用 SelectTextColor 方法指定 IronOcr 要聚焦的颜色以及容差值。容差值的范围为 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)
VB   C#

下面是 OCR 结果,只读橙色文本。

OCR 结果

查克尼特·宾

软件工程师

Chaknith 是开发者中的福尔摩斯。他第一次意识到自己可能在软件工程方面有前途,是在他出于乐趣做代码挑战的时候。他的重点是 IronXL 和 IronBarcode,但他为能帮助客户解决每一款产品的问题而感到自豪。Chaknith 利用他从直接与客户交谈中获得的知识,帮助进一步改进产品。他的轶事反馈不仅仅局限于 Jira 票据,还支持产品开发、文档编写和市场营销,从而提升客户的整体体验。当他不在办公室时,他可能会在学习机器学习、编程或徒步旅行。