C# (シーシャープ)で画像からテキストを読み取る
このチュートリアルでは、C#(シーシャープ)やその他の.NET言語で画像をテキストに変換する方法を学びます。
C#(シーシャープ)で画像をテキストに変換する方法
- OCR Image to Text IronOCRライブラリのダウンロード
- クロップ領域を調整して画像の一部を読み取る
- ランゲージパックで最大125ヶ国語を使用可能
- OCRスキャン結果をテキストまたは検索可能なPDFとしてエクスポート
.NETアプリケーションで画像からテキストを読み取る
IronOcr.IronTesseract`クラスを使用して画像内のテキストを認識し、.NETで画像からテキストを読み取る際に精度と速度の面で最高のパフォーマンスを得るために_Iron Tesseract OCR_を使用する方法のニュアンスを見ていきます。
画像からテキストへ」を実現するために、IronOCRライブラリをVisual Studioプロジェクトにインストールします。
そのために IronOCR DLL または NuGet .
Install-Package IronOcr
なぜIronOCR なのか?
私たちがテッセラクトの管理にIronOCR を使っているのは、それがユニークだからです:
- 純粋な.NETでそのまま動作します
- Tesseractがマシンにインストールされている必要はない。
- 最新エンジンに対応 **テッセラクト5(テッセラクト4と同様、3)
- .NET Framework 4.5 +、.NET Standard 2 +、.NET Core 2、3、5など、すべての.NETプロジェクトで使用できます。!
- 従来のテッセラクトよりも精度とスピードが向上している。
- Xamarin、Mono、Azure、Dockerをサポート
- NuGetパッケージを使用した複雑なTesseract辞書システムの管理
- PDFS、MultiFrame Tiff、およびすべての主要な画像フォーマットを設定なしでサポート
-
テッセラクトから最良の結果を得るために、低品質で歪んだスキャンを修正することができる。
今日から無料トライアルでIronOCRをあなたのプロジェクトで使い始めましょう。
C#(シーシャープ)でテッセラクトを使用;
この単純な例では IronOcr.IronTesseract
クラスは、画像からテキストを読み取り、その値を自動的に文字列として返します。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-1.cs
// PM> Install-Package IronOcr
using IronOcr;
OcrResult result = new IronTesseract().Read(@"img\Screenshot.png");
Console.WriteLine(result.Text);
' PM> Install-Package IronOcr
Imports IronOcr
Private result As OcrResult = (New IronTesseract()).Read("img\Screenshot.png")
Console.WriteLine(result.Text)
その結果、次のような文章で100%の精度が得られた:
IronOCR Simple Example
In this simple example we will test the accuracy of our C# OCR library to read text from a PNG
Image. This is a very basic test, but things will get more complicated as the tutorial continues.
The quick brown fox jumps over the lazy dog
画像の位置合わせ、品質、解像度をスキャンし、その特性を調べ、OCRエンジンを最適化し、訓練された人工知能ネットワークを使って人間が読むようにテキストを読み取るのだ。
OCRはコンピューターにとって簡単なプロセスではなく、読み取り速度は人間のそれに近いかもしれない。 つまり、OCRは瞬時に処理できるものではない。 しかし、この場合は100%正確だ。
C#(シーシャープ)のためのIronOCR テッセラクトの高度な使用;
現実世界のほとんどのユースケースでは、開発者は自分のプロジェクトで可能な限り最高のパフォーマンスを求めるだろう。 このような場合は、次のような使い方をお勧めします。 OCR入力
そして IronTesseract
クラスは IronOcr
名前空間内にある。
OcrInputは、以下のようなOCRジョブの特定の特性を設定する機能を提供する:
- JPEG、TIFF、GIF、BMP、PNGなど、ほとんどすべての種類の画像を扱うことができます。
- PDF文書の全体または一部を取り込む
- コントラスト、解像度、サイズの向上
-
回転、スキャンノイズ、デジタルノイズ、傾き、ネガ画像の補正
IronTesseract
- 何百ものパッケージ化された言語と言語バリエーションから選ぶ
- Tesseract 5、4、または3のOCRエンジンを "そのまま "使用可能
- スクリーンショットか、スニペットか、文書全体か、文書タイプを指定する。
- バーコードの読み取り
- 結果の出力先検索可能なPDF、Hocr HTML、DOM、文字列
例題OcrInput + IronTesseractで始める
難しいように思われるかもしれませんが、以下の例では、IronOCRに入力するほとんどの画像に対応するデフォルト設定をご覧いただけます。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-2.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageindices);
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageindices)
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
中程度の画質のスキャンでも100%の精度で使用できる。
お分かりのように、本文を読むと(オプションでバーコード)TIFFのようなスキャンされた画像からの変換は比較的簡単でした。
このOCR作業は100%の精度をもたらす。
OCRは実世界の文書に関しては完璧な科学ではないが、IronTesseractはそれに匹敵するほど優れている。
また、IronOCRはTIFFのような複数ページの文書も自動的に読み込むことができます。PDF文書からテキストを抽出自動的に
例低品質スキャン
今度は、同じページを低DPIで、歪みとデジタルノイズが多く、原紙にダメージがある、もっと低画質でスキャンしてみよう。
IronOCRがTesseractのような他のOCRライブラリに対して真に輝くのはこの点です。 OCRの精度を100%にするためにデジタルで作成された非現実的な「完璧な」テストケースではなく、現実のスキャン画像でOCRを行う。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-3.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageindices);
input.Deskew(); // removes rotation and perspective
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img\Potter.LowQuality.tiff", pageindices)
input.Deskew() ' removes rotation and perspective
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
Input.Deskewを追加しない場合()画像をまっすぐにすると、52.5%の精度が得られる。 十分ではない。
Input.Deskewの追加()99.8%**の精度を達成した。 ほぼ 高画質スキャンのOCRに匹敵する正確さ。
画像フィルターは実行に少し時間がかかるかもしれないが、OCR処理時間を短縮することもできる。開発者が入力文書を知るには、絶妙なバランスが必要だ。
確信が持てないのであれば:
- `Input.Deskew()は安全で、非常に成功したフィルターだ。
- 次に
Input.DeNoise
を試す。()かなりのデジタルノイズを修正する。
パフォーマンス・チューニング
OCRジョブのスピードにおいて最も重要な要素は、実は入力画像の品質である。 背景ノイズが少なく、dpiが高いほど、完璧な目標dpiは約200dpiで、最も速く正確なOCR結果が得られる。
しかし、IronOCR は不完全な文書を修正することに優れているので、これは必要ありません。(しかし、これは時間がかかり、OCRジョブがより多くのCPUサイクルを使用することになります。).
可能であれば、TIFFやPNGのようなデジタルノイズの少ない入力画像形式を選択すると、より高速な結果が得られます。 ロッシー JPEGなどの画像フォーマット。
イメージフィルター
次のようなイメージフィルターを使用すると、パフォーマンスを向上させることができます:
- OcrInput.Rotate(オーシーアール入力.ローテート)(double degrees (度)) 画像を時計回りに何度回転させるかを指定します。反時計回りの場合は負の数を使用します。
- OcrInput.Binarize()** - この画像フィルターは、すべてのピクセルを中間色なしで黒または白に変換します。 OCRのパフォーマンスをテキストと背景のコントラストが非常に低い場合に改善する可能性があります。
- OcrInput.ToGrayScale()** - この画像フィルターは、すべてのピクセルをグレースケールの階調に変換します。 OCRの精度を向上させる可能性は低いが、速度の向上は期待できる。
- OcrInput.Contrast(OCR入力コントラスト)()** - コントラストを自動的に向上させます。 このフィルターは、低コントラストのスキャンにおいて、OCRの速度と精度を向上させることがよくあります。
- OcrInput.DeNoise - ノイズ除去() デジタルノイズを除去する。このフィルターはノイズが予想される場合にのみ使用してください。
- OcrInput.Invert()** - すべての色を反転します。 例えば、白が黒になります:黒が白になります。
- OcrInput.Dilate(膨張)() - 高度な形態素解析。 _Dilation_は、画像内のオブジェクトの境界にピクセルを追加します。 「Erode」の反対語
- OcrInput.Erodeエロージョン()** - 高度な形態素解析。 Erosion_オブジェクトの境界上のピクセルを取り除くDilateの反対語
-
OcrInput.Deskew()画像を正しい向きにし、直交するように回転させます。 これは、OCRに非常に役立ちます。なぜなら、Tesseractの傾きの許容範囲は5度程度と低いためです。
- OcrInput.DeepCleanBackgroundNoise
オリジナルの英語のコンテンツが技術的かつブランド用語を含む内容のため、日本語での適切な翻訳に際しては、ブランド用語は英語のままで取り扱います。
"OcrInput.DeepCleanBackgroundNoise"()** - 大きな背景ノイズの除去。 このフィルタは、きれいな文書のOCR精度を低下させる危険性があり、CPUコストが非常に高いため、極端な文書背景ノイズがわかっている場合にのみ使用してください。
- OcrInput.EnhanceResolution - 低品質な画像の解像度を強化します。 なぜなら、_OcrInput.MinimumDPI_と_OcrInput.TargetDPI_が自動的に低解像度の入力を捕捉し、解決するからである。
スピードのためのパフォーマンス・チューニング
Iron Tesseract を使うことで、より高画質なスキャンのOCRを高速化することができる。
スピードを最適化するのであれば、この位置からスタートし、完璧なバランスが見つかるまで機能を戻していくかもしれない。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-4.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
// Configure for speed
ocr.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
ocr.Language = OcrLanguage.EnglishFast;
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageindices);
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Private ocr As New IronTesseract()
' Configure for speed
ocr.Configuration.BlackListCharacters = "~`$#^*_}{][|\"
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto
ocr.Language = OcrLanguage.EnglishFast
Using input As New OcrInput()
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageindices)
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
この結果は、ベースライン100%と比較して99.8%の精度だが、35%速い。
画像の切り抜き領域の読み取り
以下のコードサンプルでわかるように、(アイアン)のTesseract OCRのフォークは、画像の特定の領域を読み取ることに長けている。
を使用することがある。 System.Drawing.Rectangle
で、読み取る画像の正確な領域をピクセル単位で指定する。
これは、定型化されたフォームに記入され、特定の領域だけがケースごとに変わるテキストを扱う場合に、非常に便利である。
例ページの領域をスキャンする
を使うことができる。 System.Drawing.Rectangle
で、ドキュメントを読み込む領域を指定する。 測定単位は常にピクセルです。
これは、速度の向上を提供し、不必要なテキストの読み取りを回避することができることがわかります。 この例では、標準化された文書の中央領域から生徒の名前を読み取ります。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-5.cs
using IronOcr;
using IronSoftware.Drawing;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
// a 41% improvement on speed
Rectangle contentArea = new Rectangle(x: 215, y: 1250, height: 280, width: 1335);
input.LoadImage("img/ComSci.png", contentArea);
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Private ocr As New IronTesseract()
Private OcrInput As using
' a 41% improvement on speed
Private contentArea As New Rectangle(x:= 215, y:= 1250, height:= 280, width:= 1335)
input.LoadImage("img/ComSci.png", contentArea)
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
これにより41%の速度増加が実現し、具体的に指定することが可能になります。 .NET OCRは、請求書、領収書、小切手、フォーム、経費請求書など、ドキュメントが類似しており、一貫性がある場合に非常に便利です。
コンテンツ領域(OCR クロッピング)PDFを読み取る際にも対応しています。
国際的な言語
IronOCRは125の国際言語をサポートしており、DLLとして配布されている言語パックをこのウェブサイトからダウンロードすることができます。
NuGetを参照してインストールすることができます。("IronOCR.Languages "を検索する。)またはOCR言語パックのページ.
対応言語は以下の通り:
- アフリカーンス語
- アムハラ語 別名:አማኛ
- アラビア語 別名 العربية
- アラビア文字 別名 العربية
- アルメニアアルファベット 別名:Հայերեն
- アッサム語 ⦿ またの名を ⦿
- アゼルバイジャン語 別名:azərbaycan dili
- アゼルバイジャン語キリル文字 別名:azərbaycan dili
- ベラルーシ語 別名 беларуская мова
- ベンガル語 別名:バングラ語,탕탕লা
- ベンガル語アルファベット 別名:バングラ語、াল
- チベット語 別名:チベット標準語、チベット語、中央ཡག་
- ボスニア語 _別名:bosanski jezik
- ブルトン人_またの名をブレゾネグ_。
- ブルガリア語 別名:български език
- CanadianAboriginalAlphabet _別名:カナディアン・ファースト・ネーションズ、インディヘナ・カナディアン、ネイティブ・カナディアン、イヌイット_カナダ先住民
- カタロニア語 _カタラ、バレンシアとしても知られる
- セブアノ語_ビサヤ語、ビニサヤ語としても知られる。
- チェコ語 _čeština, český jazykとしても知られる。
-
CherokeeAlphabet Also known as ᏣijĹĶᏬIJᎯᏍķ, Tsalagi Gawonihisdi
- 中国語簡体字_別名:中文(申し訳ありませんが、「Zhōngwén」という言葉は中国語を意味します。それでも、日本語への翻訳を希望されているなら、以下の内容を日本語に翻訳いたします:
Bandwidth A Typical PDF Document is 1MB. As web applications often generate large quantities of PDFs it’s important to consider bandwidth consumption.
IronPDF can compress PDF documents to reduce their file size, ensuring that the creation of PDFs will not significantly affect your network’s performance.
1.Original PDF: 1MB 2.Compressed PDF: 300KB
By using IronPDF’s compression options, you can save up to 70% of bandwidth for every PDF generated.
帯域幅 通常のPDF文書は1MBです。Webアプリケーションはしばしば大量のPDFを生成するため、帯域幅の消費を考慮することが重要です。
IronPDFは、PDF文書のファイルサイズを縮小するために圧縮することができ、PDFの作成がネットワークのパフォーマンスに大きな影響を与えないようにします。
- オリジナルPDF:1MB
- 圧縮されたPDF:300KB
IronPDFの圧縮オプションを使用することにより、生成されるPDFごとに最大70%の帯域幅を節約できます。)汉语, 漢語_。
- 中国語SimplifiedVertical _別名:中文(申し訳ありませんが、「Zhōngwén」という言葉は中国語を意味します。それでも、日本語への翻訳を希望されているなら、以下の内容を日本語に翻訳いたします:
Bandwidth A Typical PDF Document is 1MB. As web applications often generate large quantities of PDFs it’s important to consider bandwidth consumption.
IronPDF can compress PDF documents to reduce their file size, ensuring that the creation of PDFs will not significantly affect your network’s performance.
1.Original PDF: 1MB 2.Compressed PDF: 300KB
By using IronPDF’s compression options, you can save up to 70% of bandwidth for every PDF generated.
帯域幅 通常のPDF文書は1MBです。Webアプリケーションはしばしば大量のPDFを生成するため、帯域幅の消費を考慮することが重要です。
IronPDFは、PDF文書のファイルサイズを縮小するために圧縮することができ、PDFの作成がネットワークのパフォーマンスに大きな影響を与えないようにします。
- オリジナルPDF:1MB
- 圧縮されたPDF:300KB
IronPDFの圧縮オプションを使用することにより、生成されるPDFごとに最大70%の帯域幅を節約できます。)汉语, 漢語_。
- 中国語繁体字_別名:中文(申し訳ありませんが、「Zhōngwén」という言葉は中国語を意味します。それでも、日本語への翻訳を希望されているなら、以下の内容を日本語に翻訳いたします:
Bandwidth A Typical PDF Document is 1MB. As web applications often generate large quantities of PDFs it’s important to consider bandwidth consumption.
IronPDF can compress PDF documents to reduce their file size, ensuring that the creation of PDFs will not significantly affect your network’s performance.
1.Original PDF: 1MB 2.Compressed PDF: 300KB
By using IronPDF’s compression options, you can save up to 70% of bandwidth for every PDF generated.
帯域幅 通常のPDF文書は1MBです。Webアプリケーションはしばしば大量のPDFを生成するため、帯域幅の消費を考慮することが重要です。
IronPDFは、PDF文書のファイルサイズを縮小するために圧縮することができ、PDFの作成がネットワークのパフォーマンスに大きな影響を与えないようにします。
- オリジナルPDF:1MB
- 圧縮されたPDF:300KB
IronPDFの圧縮オプションを使用することにより、生成されるPDFごとに最大70%の帯域幅を節約できます。)汉语, 漢語_。
- ChineseTraditionalVertical _別名:中文(申し訳ありませんが、「Zhōngwén」という言葉は中国語を意味します。それでも、日本語への翻訳を希望されているなら、以下の内容を日本語に翻訳いたします:
Bandwidth A Typical PDF Document is 1MB. As web applications often generate large quantities of PDFs it’s important to consider bandwidth consumption.
IronPDF can compress PDF documents to reduce their file size, ensuring that the creation of PDFs will not significantly affect your network’s performance.
1.Original PDF: 1MB 2.Compressed PDF: 300KB
By using IronPDF’s compression options, you can save up to 70% of bandwidth for every PDF generated.
帯域幅 通常のPDF文書は1MBです。Webアプリケーションはしばしば大量のPDFを生成するため、帯域幅の消費を考慮することが重要です。
IronPDFは、PDF文書のファイルサイズを縮小するために圧縮することができ、PDFの作成がネットワークのパフォーマンスに大きな影響を与えないようにします。
- オリジナルPDF:1MB
- 圧縮されたPDF:300KB
IronPDFの圧縮オプションを使用することにより、生成されるPDFごとに最大70%の帯域幅を節約できます。)汉语, 漢語_。
- チェロキー別名:ᏣᎳĹᏂᎯᏣᏍķ, Tsalagi Gawonihisdi
- コルシカ語 別名:corsu、lingua corsa
- ウェールズ語 別名 Cymraeg
- キリル文字 _キリル文字としても知られる。
- デンマーク語 別名 dansk
- デンマーク語 別名 dansk
- ドイツ語 _別名 Deutsch
- ドイツ語_ドイツ語としても知られている
- デーヴァナーガリー文字 別名:Nagair, देवनागरी
- ディベヒ_別名:ދހވެ
- ゾンカ語 _別名:ར ོང ་ཁ_ཁ
- ギリシャ語 別名 ελληνικά
- 英語
- MiddleEnglish 別名:イングリッシュ(紀元1100年から1500年まで)
- エスペラント
- エストニア語 別名:eesti、eesti keel
- エチオピックのアルファベット 別名:Ge'ez,ግዝ, Gə+əəz
- バスク語 別名euskara, euskera
- フェロー語 別名 føroyskt
- ペルシア語 別名 فارسی
- フィリピノ語 _別名:フィリピン国語、標準タガログ語_英語
- フィンランド語 別名:suomi、suomen kieli
- 財務 _財務書類、数値書類、技術書類としても知られる。
- フランス語 別名:français、langue française
- FrakturAlphabet一般的なFrakturとしても知られる、ラテンアルファベットのカリグラフィーの手。
- フランク語 _別名フレンキスク、古フランコニア語
- ミドル・フレンチ 別名:モワン・フランセーズ、ミドル・フレンチ(カ。 西暦1400-1600年)
- 西フリジア語 _別名フリスク語
- グルジア語アルファベット 別名 ქართული
- スコットランド・ゲール語 別名Gàidhlig(ガイドリグ
- アイルランド語 _ゲール語としても知られる
- ガリシア語 別名 galego
- AncientGreek 別名:Ἑληνική
- ギリシャ文字 別名 ελληνικά
- グジャラート語 _別名:ગર ીત ી_ગ ી
- グジャラート語アルファベット _別名:ગુજાતી_જ
- グルムキー文字 別名:Gurmukhī, ਗ ੁ, ਰ ਮ ੁ ਖ ੀ, Shahmukhi, گُرمُکھی, Sihk Script (グルムキー文字)。
- ハングル_ハングル、한글、ハングル、조선글、hosŏn'gŭl_としても知られています。
- HangulVerticalAlphabet _別名:ハングル、한글、ハングル、조선글、hosŏn'gŭl_ハングル縦書きアルファベット
- 漢簡またの名を三韓、한어、韓語。
- HanSimplifiedVerticalAlphabet 別名:Samhan, 한어, 韓語|日本語検索・英語翻訳サイト
- 漢語またの名を三韓語、한어、韓語。
- 漢訳縦書アルファベットまたの名を三韓、한어、韓語。
- ハイチ語またの名をKreyòl ayisyen
- ヘブライ語 עברית としても知られている。
- ヘブライ語アルファベット 別名 עברית
- ヒンディー語 別名:हिन्दी, हिंदी
- クロアチア語 別名 hrvatski jezik
- ハンガリー語 別名 magyar
- アルメニア語 別名:Հայերն
- イヌクティット語 _別名 ᑎᑐᑦᑎᑎᑐᑦᑎᒃ
- インドネシア語 別名 Bahasa Indonesia
- アイスランド語 別名 Íslenska
- イタリア語
- ItalianOld 別名: italiano
- JapaneseAlphabet 別名:日本語(にほんご)
- JapaneseVerticalAlphabet 別名:日本語(にほんご)
- ジャワ_またの名をバサ・ジャワ_。
- 日本語別名(にほんご)
- JapaneseVertical 別名:日本語(にほんご)
- カンナダ語 別名 ಕನ ್ಡ
- KannadaAlphabet _別名:ಕನ್_ಡ
- グルジア語 ქართული_
- グルジア語_ქართული_としても知られています。
- カザフ語 қазақ тілі としても知られている。
- クメール語 別名:ខ្មែរ, ខេមរភាស, ភŶស្មែរែរ
- クメール語アルファベット _別名:ខ្ម, ខរűមរ𗅶ស, ភŶសរ_ŲមŲរ_ខ
- キルギス語 別名:Кыргызча, Кыргыз тили
- 北クルド語 別名クルマンジ、کورمانجی ,Kurmancî
- 韓国語한국어としても知られる(現在韓国語を選択しました。しかし、翻訳対象が英語で指定されていますので、英語のコンテンツを提供してください。)조선어(朝鮮語)
- KoreanVertical 別名:한국어(現在韓国語を選択しました。しかし、翻訳対象が英語で指定されていますので、英語のコンテンツを提供してください。)조선어(朝鮮語)
- ラオス人 別名:ພາວ
- ラオスのアルファベット _別名:ພາວ_ラオスのアルファベット
- ラテン語 _別名:ラテン語、ラテン言語
- ラテンアルファベット _別名:ラテン語、ラテン言語
- ラトビア語 別名 latviešu valoda
- リトアニア語 別名 lietuvių kalba
- ルクセンブルク語 別名 Lëtzebuergesch
- マラヤーラム語 _別名:മലയ ാള ം_യ
- マラヤーラム語アルファベット _別名:മലയാളം_യ
- マラーティー語 別名 मारठी
- MICR _別名:磁気インク文字認識、MICR小切手エンコーディング
- マケドニア語 別名:македонски јазик
- マルタ語 _別名:マルティ
- モンゴル語 別名 монгол
- マオリ_またの名をテ・レオ・マオリ_。
- マレー語 バハサ・ムラユとしても知られる بهاس ملايو
- ミャンマー 別名ビルマ語 ,ဗမာစာ
- ミャンマー語アルファベット ビルマ語としても知られる ဗမာစာ
- ネパール語 _नेपालीとしても知られる。
- オランダ語 別名:Nederlands, Vlaams
- ノルウェー語 _別名:ノルスク語
- オック語_オック語としても知られる。
- オリヤー語 _別名:ଓ습니다
- オリヤーアルファベット _別名:ଓ습니다
- パンジャブ語 別名:ਪ↪A70↩ਜੀ, پنجابی
- ポーランド語 _język polski、polszczyzna_としても知られる。
- ポルトガル語 _別名:português_ポルトガル語
- パシュトゥー語 別名 پښتو
- ケチュア語 _別名:ルナ・シミ、キチュワ語
- ルーマニア語 別名 limba română
- ロシア語 別名:русский зык
- サンスクリット語 _別名:संस्क↪n943↩तम्
- シンハラ語 _別名:ස↪DC4↩ිහි
- シンハラ語アルファベット _別名:ස̫හහස
- スロバキア語 別名 slovenčina, slovenský jazyk
- SlovakFraktur _別名:slovenčina, slovenský jazyk _スロベニア語
- スロベニア語 別名 slovenski jezik, slovenščina
- シンド語 別名:सिन्धी, سنڌي سندھی
- スペイン語_español, castellanoとしても知られる。
- スペイン語_español, castellanoとしても知られる。
- アルバニア語 別名:gjuha shqipe
- セルビア語 別名 српски језик
- セルビア語ラテン語 別名 српски језик
- スンダ_別名:バサ・スンダ
- スワヒリ語 _別名キスワヒリ語
- スウェーデン語 _スヴェンスカとしても知られる
- シリア語 シリア語、シリア語アラム語、ܠܫܢܐ ܣܘܪܝܝܐ, Lešānā Suryāyā としても知られる。
- SyriacAlphabet シリア語、シリア語アラム語、ܠܫܢܐ ܣܘܪܝܐ, Lešānā Suryāyā としても知られる。
- タミル語 _別名:தம்_ழ
- タミル語アルファベット _別名:தம்_த
- タタール語 別名:татар теле, tatar tele
- テルグ語 _別名:తెలు ు
- TeluguAlphabet_別名:త̑ెలు
- タジク語 別名:тоάик, toğikī, تاجیکی
- タガログ語 _別名:Wikang Tagalog, ᜏ ᜅ ᜒ ᜃ ᜔ ᜆ ᜄ ᜎ ᜓ ᜄ ᜔_ᜄ
- タイ語 別名 ไทย
- Thaanaアルファベット 別名:Taana , Tāna , ތާނނ
- タイアルファベット 別名 ไทย
- TibetanAlphabet 別名:チベット標準語、チベット語、中央ཡག་
- ティグリニャ語 別名 ትግኛ
- トンガ_別名:ファカ・トンガ
- トルコ語_Türkçe_としても知られる。
- ウイグル語 別名:Uyƣurqə, ئۇيغۇرچە.
- ウクライナ語 別名:українська мова
- ウルドゥー語 別名 اردو
- ウズベク語 別名:O'zbek, Ўзбек, أۇزبېك
- ウズベク・キリル語 別名:O'zbek, Ўзбек, أۇزبېك
- ベトナム語_別名:Tiếng Việt(ティエン・ヴィエット
- ベトナム語アルファベット 別名Tiếng Việt
- イディッシュ語 別名 ייִדיש
- ヨルバ語_ヨルバとしても知られる。
例アラビア語のOCR (+その他多数)
次の例では、アラビア語の文書をスキャンする方法を示す。
PM> Install-Package IronOcr.Languages.Arabic
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-6.cs
// PM> Install IronOcr.Languages.Arabic
using IronOcr;
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.Arabic;
using OcrInput input = new OcrInput();
input.LoadImageFrame("img/arabic.gif", 1);
// add image filters if needed
// In this case, even thought input is very low quality
// IronTesseract can read what conventional Tesseract cannot.
OcrResult result = ocr.Read(input);
// Console can't print Arabic on Windows easily.
// Let's save to disk instead.
result.SaveAsTextFile("arabic.txt");
' PM> Install IronOcr.Languages.Arabic
Imports IronOcr
Private ocr As New IronTesseract()
ocr.Language = OcrLanguage.Arabic
Using input As New OcrInput()
input.LoadImageFrame("img/arabic.gif", 1)
' add image filters if needed
' In this case, even thought input is very low quality
' IronTesseract can read what conventional Tesseract cannot.
Dim result As OcrResult = ocr.Read(input)
' Console can't print Arabic on Windows easily.
' Let's save to disk instead.
result.SaveAsTextFile("arabic.txt")
End Using
例同じ文書内の複数の言語でOCR。
次の例では、同じ文書に複数の言語をOCRスキャンする方法を示します。
これは実際によくあることで、たとえば中国語の文書に英語の単語やURLが含まれていることがある。
PM> Install-Package IronOcr.Languages.ChineseSimplified
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-7.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.ChineseSimplified;
// We can add any number of languages.
ocr.AddSecondaryLanguage(OcrLanguage.English);
// Optionally add custom tesseract .traineddata files by specifying a file path
using OcrInput input = new OcrInput();
input.LoadImage("img/MultiLanguage.jpeg");
OcrResult result = ocr.Read(input);
result.SaveAsTextFile("MultiLanguage.txt");
Imports IronOcr
Private ocr As New IronTesseract()
ocr.Language = OcrLanguage.ChineseSimplified
' We can add any number of languages.
ocr.AddSecondaryLanguage(OcrLanguage.English)
' Optionally add custom tesseract .traineddata files by specifying a file path
Using input As New OcrInput()
input.LoadImage("img/MultiLanguage.jpeg")
Dim result As OcrResult = ocr.Read(input)
result.SaveAsTextFile("MultiLanguage.txt")
End Using
マルチページ・ドキュメント
IronOCR は複数のページ/画像を一つの OcrResult
にまとめることができます。 これは、複数の画像からドキュメントを作成する場合に非常に便利です。 IronTesseractのこの特別な機能は、OCR入力から検索可能なPDFやHTMLファイルを作成するのに非常に便利であることは後述します。
IronOcrは、画像、TIFFフレーム、PDFページを1つのOCR入力に「ミックス&マッチ」することを可能にします。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-8.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("image3.gif", pageindices);
OcrResult result = ocr.Read(input);
Console.WriteLine($"{result.Pages.Length} Pages"); // 3 Pages
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.LoadImage("image1.jpeg")
input.LoadImage("image2.png")
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("image3.gif", pageindices)
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine($"{result.Pages.Length} Pages") ' 3 Pages
また、TIFFの全ページを簡単にOCRすることもできます。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-9.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("MultiFrame.Tiff", pageindices);
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Console.WriteLine($"{result.Pages.Length} Pages");
// 1 page for every frame (page) in the TIFF
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("MultiFrame.Tiff", pageindices)
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
Console.WriteLine($"{result.Pages.Length} Pages")
' 1 page for every frame (page) in the TIFF
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-10.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.LoadPdf("example.pdf", Password: "password");
// We can also select specific PDF page numbers to OCR
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Console.WriteLine($"{result.Pages.Length} Pages");
// 1 page for every page of the PDF
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.LoadPdf("example.pdf", Password:= "password")
' We can also select specific PDF page numbers to OCR
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
Console.WriteLine($"{result.Pages.Length} Pages")
' 1 page for every page of the PDF
検索可能なPDF
C#(シーシャープ)やVB.NETでOCR結果を検索可能なPDFとしてエクスポートすることは、IronOCRの人気の機能です。 これは、データベースの人口、SEO、PDFのユーザビリティの企業や政府に本当に役立ちます。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-11.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.Title = "Quarterly Report";
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("image3.gif", pageindices);
OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable.pdf");
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.Title = "Quarterly Report"
input.LoadImage("image1.jpeg")
input.LoadImage("image2.png")
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("image3.gif", pageindices)
Dim result As OcrResult = ocr.Read(input)
result.SaveAsSearchablePdf("searchable.pdf")
OCRのもう一つのトリックは、既存のPDF文書を検索可能に変換することである。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-12.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.Title = "Pdf Metadata Name";
input.LoadPdf("example.pdf", Password: "password");
OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable.pdf");
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.Title = "Pdf Metadata Name"
input.LoadPdf("example.pdf", Password:= "password")
Dim result As OcrResult = ocr.Read(input)
result.SaveAsSearchablePdf("searchable.pdf")
IronTesseractを使って1ページ以上のTIFFドキュメントを検索可能なPDFに変換する場合も同様です。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-13.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.Title = "Pdf Title";
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageindices);
OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable.pdf");
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.Title = "Pdf Title"
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("example.tiff", pageindices)
Dim result As OcrResult = ocr.Read(input)
result.SaveAsSearchablePdf("searchable.pdf")
HocrのHTMLエクスポート
同様に、OCR結果文書をHocr HTMLにエクスポートすることもできます。 これは、XMLリーダーでパースしたり、視覚的に魅力的なHTMLにマークアップすることができるXML文書です。
これにより、PDFからHTMLへの変換や、TIFFからHTMLへの変換がある程度可能になる。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-14.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.Title = "Html Title";
// Add more content as required...
input.LoadImage("image2.jpeg");
input.LoadPdf("example.pdf",Password: "password");
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageindices);
OcrResult result = ocr.Read(input);
result.SaveAsHocrFile("hocr.html");
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.Title = "Html Title"
' Add more content as required...
input.LoadImage("image2.jpeg")
input.LoadPdf("example.pdf",Password:= "password")
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("example.tiff", pageindices)
Dim result As OcrResult = ocr.Read(input)
result.SaveAsHocrFile("hocr.html")
OCRドキュメントのバーコード読み取り
IronOCRは、バーコードやQRコードも読み取ることができるという点で、従来のテッセラクトにはないユニークな利点がある;
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-15.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using OcrInput input = new OcrInput();
input.LoadImage("img/Barcode.png");
OcrResult result = ocr.Read(input);
foreach (var barcode in result.Barcodes)
{
Console.WriteLine(barcode.Value);
// type and location properties also exposed
}
Imports IronOcr
Private ocr As New IronTesseract()
ocr.Configuration.ReadBarCodes = True
Using input As New OcrInput()
input.LoadImage("img/Barcode.png")
Dim result As OcrResult = ocr.Read(input)
For Each barcode In result.Barcodes
Console.WriteLine(barcode.Value)
' type and location properties also exposed
Next barcode
End Using
画像からテキストへのOCR結果を詳しく見る
このチュートリアルで最後に見るのは、OCR結果オブジェクトです。 私たちがOCRを読むとき、通常はテキストだけを取り出すことを望むが、IronOCRには実は高度な開発者に役立つかもしれない膨大な情報が含まれている。
OCR結果オブジェクトの中には、反復可能なページのコレクションがある。 各ページには、バーコード、パワーグラフ、テキスト行、単語、文字がある。
これらのオブジェクトは、実際にはそれぞれ「場所」を含んでいる; X座標; Y座標; 幅と高さ; それに関連する画像を検査することができる; フォント名; フォントサイズ;テキストが書かれる方向; テキストの回転; と、IronOCRがその特定の単語、行、段落に対して持っている統計的信頼性。
つまり、開発者は創造性を発揮し、情報を検査したりエクスポートしたりするために、どのような方法でもOCRデータを扱うことができる。
また、.NET OCR結果オブジェクトから、段落、単語、バーコードなどの任意の要素を操作し、画像またはBitMapとしてエクスポートすることもできます。
:path=/static-assets/ocr/content-code-examples/tutorials/how-to-read-text-from-an-image-in-csharp-net-16.cs
using IronOcr;
using IronSoftware.Drawing;
// We can delve deep into OCR results as an object model of Pages, Barcodes, Paragraphs, Lines, Words and Characters
// This allows us to explore, export and draw OCR content using other APIs
IronTesseract ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageindices);
OcrResult result = ocr.Read(input);
foreach (var page in result.Pages)
{
// Page object
int pageNumber = page.PageNumber;
string pageText = page.Text;
int pageWordCount = page.WordCount;
// null if we don't set Ocr.Configuration.ReadBarCodes = true;
OcrResult.Barcode[] barcodes = page.Barcodes;
AnyBitmap pageImage = page.ToBitmap(input);
System.Drawing.Bitmap pageImageLegacy = page.ToBitmap(input);
double pageWidth = page.Width;
double pageHeight = page.Height;
foreach (var paragraph in page.Paragraphs)
{
// Pages -> Paragraphs
int paragraphNumber = paragraph.ParagraphNumber;
String paragraphText = paragraph.Text;
System.Drawing.Bitmap paragraphImage = paragraph.ToBitmap(input);
int paragraphXLocation = paragraph.X;
int paragraphYLocation = paragraph.Y;
int paragraphWidth = paragraph.Width;
int paragraphHeight = paragraph.Height;
double paragraphOcrAccuracy = paragraph.Confidence;
var paragraphTextDirection = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Pages -> Paragraphs -> Lines
int lineNumber = line.LineNumber;
String lineText = line.Text;
AnyBitmap lineImage = line.ToBitmap(input);
System.Drawing.Bitmap lineImageLegacy = line.ToBitmap(input);
int lineXLocation = line.X;
int lineYLocation = line.Y;
int lineWidth = line.Width;
int lineHeight = line.Height;
double lineOcrAccuracy = line.Confidence;
double lineSkew = line.BaselineAngle;
double lineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Pages -> Paragraphs -> Lines -> Words
int wordNumber = word.WordNumber;
String wordText = word.Text;
AnyBitmap wordImage = word.ToBitmap(input);
System.Drawing.Image wordImageLegacy = word.ToBitmap(input);
int wordXLocation = word.X;
int wordYLocation = word.Y;
int wordWidth = word.Width;
int wordHeight = word.Height;
double wordOcrAccuracy = word.Confidence;
if (word.Font != null)
{
// Word.Font is only set when using Tesseract Engine Modes rather than LTSM
String fontName = word.Font.FontName;
double fontSize = word.Font.FontSize;
bool isBold = word.Font.IsBold;
bool isFixedWidth = word.Font.IsFixedWidth;
bool isItalic = word.Font.IsItalic;
bool isSerif = word.Font.IsSerif;
bool isUnderlined = word.Font.IsUnderlined;
bool fontIsCaligraphic = word.Font.IsCaligraphic;
}
foreach (var character in word.Characters)
{
// Pages -> Paragraphs -> Lines -> Words -> Characters
int characterNumber = character.CharacterNumber;
String characterText = character.Text;
AnyBitmap characterImage = character.ToBitmap(input);
System.Drawing.Bitmap characterImageLegacy = character.ToBitmap(input);
int characterXLocation = character.X;
int characterYLocation = character.Y;
int characterWidth = character.Width;
int characterHeight = character.Height;
double characterOcrAccuracy = character.Confidence;
// Output alternative symbols choices and their probability.
// Very useful for spell checking
OcrResult.Choice[] characterChoices = character.Choices;
}
}
}
}
}
Imports IronOcr
Imports IronSoftware.Drawing
' We can delve deep into OCR results as an object model of Pages, Barcodes, Paragraphs, Lines, Words and Characters
' This allows us to explore, export and draw OCR content using other APIs
Private ocr As New IronTesseract()
ocr.Configuration.ReadBarCodes = True
Using input As New OcrInput()
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageindices)
Dim result As OcrResult = ocr.Read(input)
For Each page In result.Pages
' Page object
Dim pageNumber As Integer = page.PageNumber
Dim pageText As String = page.Text
Dim pageWordCount As Integer = page.WordCount
' null if we don't set Ocr.Configuration.ReadBarCodes = true;
Dim barcodes() As OcrResult.Barcode = page.Barcodes
Dim pageImage As AnyBitmap = page.ToBitmap(input)
Dim pageImageLegacy As System.Drawing.Bitmap = page.ToBitmap(input)
Dim pageWidth As Double = page.Width
Dim pageHeight As Double = page.Height
For Each paragraph In page.Paragraphs
' Pages -> Paragraphs
Dim paragraphNumber As Integer = paragraph.ParagraphNumber
Dim paragraphText As String = paragraph.Text
Dim paragraphImage As System.Drawing.Bitmap = paragraph.ToBitmap(input)
Dim paragraphXLocation As Integer = paragraph.X
Dim paragraphYLocation As Integer = paragraph.Y
Dim paragraphWidth As Integer = paragraph.Width
Dim paragraphHeight As Integer = paragraph.Height
Dim paragraphOcrAccuracy As Double = paragraph.Confidence
Dim paragraphTextDirection = paragraph.TextDirection
For Each line In paragraph.Lines
' Pages -> Paragraphs -> Lines
Dim lineNumber As Integer = line.LineNumber
Dim lineText As String = line.Text
Dim lineImage As AnyBitmap = line.ToBitmap(input)
Dim lineImageLegacy As System.Drawing.Bitmap = line.ToBitmap(input)
Dim lineXLocation As Integer = line.X
Dim lineYLocation As Integer = line.Y
Dim lineWidth As Integer = line.Width
Dim lineHeight As Integer = line.Height
Dim lineOcrAccuracy As Double = line.Confidence
Dim lineSkew As Double = line.BaselineAngle
Dim lineOffset As Double = line.BaselineOffset
For Each word In line.Words
' Pages -> Paragraphs -> Lines -> Words
Dim wordNumber As Integer = word.WordNumber
Dim wordText As String = word.Text
Dim wordImage As AnyBitmap = word.ToBitmap(input)
Dim wordImageLegacy As System.Drawing.Image = word.ToBitmap(input)
Dim wordXLocation As Integer = word.X
Dim wordYLocation As Integer = word.Y
Dim wordWidth As Integer = word.Width
Dim wordHeight As Integer = word.Height
Dim wordOcrAccuracy As Double = word.Confidence
If word.Font IsNot Nothing Then
' Word.Font is only set when using Tesseract Engine Modes rather than LTSM
Dim fontName As String = word.Font.FontName
Dim fontSize As Double = word.Font.FontSize
Dim isBold As Boolean = word.Font.IsBold
Dim isFixedWidth As Boolean = word.Font.IsFixedWidth
Dim isItalic As Boolean = word.Font.IsItalic
Dim isSerif As Boolean = word.Font.IsSerif
Dim isUnderlined As Boolean = word.Font.IsUnderlined
Dim fontIsCaligraphic As Boolean = word.Font.IsCaligraphic
End If
For Each character In word.Characters
' Pages -> Paragraphs -> Lines -> Words -> Characters
Dim characterNumber As Integer = character.CharacterNumber
Dim characterText As String = character.Text
Dim characterImage As AnyBitmap = character.ToBitmap(input)
Dim characterImageLegacy As System.Drawing.Bitmap = character.ToBitmap(input)
Dim characterXLocation As Integer = character.X
Dim characterYLocation As Integer = character.Y
Dim characterWidth As Integer = character.Width
Dim characterHeight As Integer = character.Height
Dim characterOcrAccuracy As Double = character.Confidence
' Output alternative symbols choices and their probability.
' Very useful for spell checking
Dim characterChoices() As OcrResult.Choice = character.Choices
Next character
Next word
Next line
Next paragraph
Next page
End Using
サマリー
IronOCRはC#開発者に最先端のツールを提供しますTesseract API (テッセラクト API)私たちが知っている限り、どのプラットフォームでも。
IronOCRはWindows、Linux、Mac、Azure、AWS、Lambdaにデプロイ可能で、_.NET Frameworkプロジェクト、.NET Standard、.NET Core_をサポートしています。
不完全な文書であっても、IronOCRに入力すると、文書の書式が悪く、ゆがみがあり、デジタルノイズがあっても、統計的に約99%の精度で内容を正確に読み取ることができることがわかる。
我々はOCRスキャンの中でバーコードを読み取ることができ、さらにOCR結果をHTMLや検索可能なPDFとしてエクスポートすることもできます。
これはIronOCR独自のものであり、標準的なOCRライブラリやTesseractにはない機能です。
これから進む
IronOCRについてさらに詳しくお知りになりたい方は、以下をお勧めします:
- まずはC#(シーシャープ)OCRクイックスタートガイド
- 探検するC# & VBコード例
- 詳細な記事を読むmsdnスタイルのapiリファレンス.
ソースコードダウンロード
- GitHub リポジトリ
-
このセクションの他の.NET OCRチュートリアルもお楽しみください。