あなたはどのOpenCVの答えを取得していないようですので、私はちょうど、コマンドラインでのターミナルでImageMagickを、と試していました。 ImageMagickはほとんどのLinuxディストリビューションにインストールされており、macOSとWindowsでは無料で利用できます。このテクニックはかなり簡単にOpenCVに適応していますので、それがあなたのために働くならば、それを移植することができます。
私の最初のステップは、スキャンアーチファクトをノイズから取り除くために5x5ボックスフィルタとスレッショルドを80%にすることでした(おそらく、私はモフォロジーの使用を計画していたためですが、最後にはしませんでした)。
convert news.jpg -depth 16 -statistic mean 5x5 -threshold 80% -negate z.png
私はその後"連結成分分析"を通って、(2000ピクセルの下で)あまりにも小さい面積ですべてのブロブを破棄することを実行しました:
出力
Objects (id: bounding-box centroid area mean-color):
110: 1254x723+59+174 686.3,536.0 901824 srgb(0,0,0)
2328: 935x723+59+910 526.0,1271.0 676005 srgb(0,0,0)
0: 1370x1692+0+0 685.2,712.7 399651 srgb(0,0,0)
2329: 303x722+1007+911 1158.0,1271.5 218766 srgb(0,0,0)
25: 1262x40+54+121 685.2,140.5 49820 srgb(255,255,255)
109: 1265x735+54+168 708.3,535.0 20601 srgb(255,255,255)
1: 1274x64+48+48 675.9,54.5 16825 srgb(255,255,255)
2326: 945x733+54+905 526.0,1271.0 16660 srgb(255,255,255)
2327: 312x732+1003+906 1169.9,1271.5 9606 srgb(255,255,255) <--- THIS ONE
421: 403x15+328+342 528.6,350.1 4816 srgb(255,255,255)
7: 141x23+614+74 685.5,85.2 2831 srgb(255,255,255)
フィールドは最初の行に表示されますが、興味深いものは2番目(ブロックの形状)と4番目のフィールド(ブロブ領域)です。あなたが見ることができるように、11行がありますので、画像に11個のブロブが見つかりました。第2フィールドのAxB+C+D
は、幅がA
ピクセル、長さがB
ピクセル、左上角がC
ピクセル、画像の左端がD
ピクセル、下から上に向かって小さいピクセルを意味します。
2327: 312x732+1003+906
を開始し、その1以上の四角形を描画している、のは、私は矢印でマークされている1を見てみましょう:
convert news.jpg -fill "rgba(255,0,0,0.5)" -draw "rectangle 1003,906 1315,1638" oneArticle.png
あなたは新しいにその記事をトリミングしたい場合画像:
convert news.jpg -crop 312x732+1003+906 article.jpg
我々は他のすべてのボックスに描く場合は、我々が得る:
はあなたにもいくつかの実際の入力画像を持っていますか?あなたが示すものは、その概念を説明するのに便利です。実際には現実のインプットで作業する必要があります。 –
実際の入力画像を追加しましたが、解析対象の文書はさまざまなソースからのものです。フォーマット全体のフォーマットは常に似ていると予想されますが、ラインサイズ、言語、テキストフォーマットなどは変更される傾向があります。 – migsvult
これは、スキャナやカメラで取得した画像ではなく、コンピュータで生成された画像のようです。 (どのようにすべての線が完全に水平/垂直であるかで判断する)それはすべての入力がどのようになるのだろうか?もしそうなら、それは間違いなくタスクを容易にします。 –