読み取りのための画像色の修正方法

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

によって チャクニット・ビン

画像の色を修正するには、画像の視認性と品質を向上させるためのいくつかの技術が含まれます。 IronOCRは、OCRを使用するときに特に重要な、画像内のテキストやコンテンツをより読みやすく、また美しくするために、二値化、グレースケール、反転、および色置換の方法を提供します。(光学文字認識)画像からテキストを抽出するために。 選択されたテキストの色のみを読み取ることも可能です。

IronOCRを始めましょう

今日から無料トライアルでIronOCRをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer



画像の二値化例

このプロセスは画像を二色形式、通常は白黒に変換します。これは、背景からテキストを分離し、ノイズを減らして、テキストをより鮮明で読みやすくするのに役立ちます。

画像に二値化効果を適用するには、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")
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#

以下の画像は、グレースケールオプションの有無にかかわらず、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")
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 related to 特定のテキストカラーを読み取る例

チャクニット・ビン

ソフトウェアエンジニア

チャクニットは開発者のシャーロック・ホームズです。彼がソフトウェアエンジニアリングの将来性に気付いたのは、楽しみでコーディングチャレンジをしていたときでした。彼のフォーカスはIronXLとIronBarcodeにありますが、すべての製品でお客様を助けることに誇りを持っています。チャクニットは顧客と直接話すことで得た知識を活用して、製品自体のさらなる改善に貢献しています。彼の逸話的なフィードバックは、単なるJiraチケットを超えて、製品開発、ドキュメントおよびマーケティングをサポートし、顧客の全体的な体験を向上させます。オフィスにいないときは、機械学習やコーディングについて学んだり、ハイキングを楽しんだりしています。