ReadDocumentAdvancedによる点線枠のテーブル検出

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

border: 1px dotted black)を検出することはできません。 ページ上のテキストはまだ読み取れますが、エンジンはテーブルを認識できないため、テーブルオブジェクトにアクセスできません。

点線境界を持ったドキュメントにReadDocumentAdvancedを呼び出してそのセルを読み取ると、エラーが出ます:

Unhandled exception. System.InvalidOperationException: Sequence contains no elements

ドット間のギャップが境界を不連続なセグメントに分断し、OCRエンジンはテーブル境界として処理する連続した輪郭を認識しません。 Tables.First()は返すものがありません。

解決策

処理前にDilate()フィルターを適用してください。 拡張により、画像内の暗いピクセルが拡大され、ドット間のギャップが閉じて読みやすい連続した線となります。その結果、エンジンはテーブルオブジェクトを検出し、そのセルを返すことができるようになります。

1. テーブルの読み取りを有効にし、入力をロードします

エンジンが構造化されたテーブル出力を生成するReadDataTablesをオンにし、画像をロードします。

var ocr = new IronTesseract();
ocr.Configuration.ReadDataTables = true;
var input = new OcrInput();
input.Load("image-20250408-144240.png");
var ocr = new IronTesseract();
ocr.Configuration.ReadDataTables = true;
var input = new OcrInput();
input.Load("image-20250408-144240.png");
Imports IronTesseract

Dim ocr As New IronTesseract()
ocr.Configuration.ReadDataTables = True
Dim input As New OcrInput()
input.Load("image-20250408-144240.png")
$vbLabelText   $csharpLabel

OCRが検出できない点線境界の入力テーブル

2. 読み取る前に拡張します

点線境界を連続した輪郭にマージするために入力でReadDocumentAdvancedを実行します。

input.Dilate();
input.SaveAsImages("export.png", AnyBitmap.ImageFormat.Png);
var res = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(res.Tables.First().CellInfos.First().CellText);
input.Dilate();
input.SaveAsImages("export.png", AnyBitmap.ImageFormat.Png);
var res = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(res.Tables.First().CellInfos.First().CellText);
Dim res = ocr.ReadDocumentAdvanced(input)
input.Dilate()
input.SaveAsImages("export.png", AnyBitmap.ImageFormat.Png)
Console.WriteLine(res.Tables.First().CellInfos.First().CellText)
$vbLabelText   $csharpLabel

res.Tablesが現在は埋め込まれており、セルテキストがクリーンに読み取れます。 SaveAsImagesの呼び出しはオプションです; それは拡張された画像を検査し、期待通りに境界が閉じたかを確認することができます。

拡張後に点線境界が連続した線にマージされたテーブル

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 6,136,090 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronOcr
サンプルを実行 あなたの画像が検索可能なテキストになるのをご覧ください。