如何为阅读修正图像颜色
修复图像颜色涉及多种技术,以提高图像的可读性和质量。IronOcr 提供二值化、灰度、反转和颜色替换等方法,使图像中的文本和内容更具可读性和美观性,这在使用 OCR 时尤为重要。 (光学字符识别) 从图像中提取文本。还可以只读取所选文本的颜色。
如何为阅读修正图像颜色
- 下载校正图像颜色的 C# 库
- 导入 PDF 文档和图像以供阅读
- 应用所需的色彩效果,如二值化、灰度、反转和色彩置换等
- 导出校正后的图像以供查看
- 使用
选择文本颜色
方法
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronOCR 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变OCR。
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")
为方便起见,您可以使用 "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()
之前
之后
反转图像示例
反转颜色可以增强对比度。例如,将黑底白字变成白底黑字可以提高可读性。
使用 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()
下面的图片显示了使用和不使用灰度选项时的反转方法。
倒置
倒置 & Grayscaled
替换颜色示例
这项技术可以用其他颜色替换图像中的特定颜色,从而帮助突出或淡化某些元素。它通常用于使文字更突出或纠正有问题的色彩对比。
要使用 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")
之前
之后
阅读特定文本颜色示例
此功能只读取指定的文本颜色。使用 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)
下面是 OCR 结果,只读橙色文本。