如何为阅读修正图像颜色
修复图像颜色涉及多种技术,以提高图像的可读性和质量。 IronOCR提供二值化、灰度、反转和颜色替换方法,使图像中的文本和内容更具可读性和美观性,这在使用OCR时尤为重要。(光学字符识别)从图像中提取文本。 只读选定的文本颜色也是可能的。
开始使用IronOCR
立即在您的项目中开始使用IronOCR,并享受免费试用。
如何为阅读修正图像颜色
- 下载校正图像颜色的 C# 库
- 导入 PDF 文档和图像以供阅读
- 应用所需的色彩效果,如二值化、灰度、反转和色彩置换等
- 导出校正后的图像以供查看
- 使用
选择文本颜色
方法
二值化图像示例
此过程将图像转换为两种颜色格式,通常是黑白色。这有助于将文字与背景分离并减少噪音,使文本更加清晰易读。
要对图像应用二值化效果,请使用Binarize
方法。 由于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()
下面的图片显示了使用和不使用灰度选项时的反转方法。
倒置
反转和灰度
替换颜色示例
此技术允许您将图像中的特定颜色替换为其他颜色,这有助于突出或弱化某些元素。 它通常用于使文本更加突出或纠正问题色彩对比。
要使用 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 结果,只读橙色文本。