画像上のフレーム化されたテキストの座標

Dec 18 2020

画像のフレームテキストの座標を取得したいのですが。段落には細い黒い境界線があります。画像の残りの部分には、通常の段落とスケッチが含まれています。

次に例を示します。

これを実現するために、Pythonで画像ライブラリを使用してどのようなアルゴリズムを使用する必要があるかについて何か考えがありますか?ありがとう。

回答

2 alecxe Dec 18 2020 at 18:02

かなりのサイズのボックス/長方形を検索することに主に帰着するフレーム化されたテキストを検出するためのいくつかのアイデア:

  • OpenCVで輪郭を見つけ、ポリゴン近似アルゴリズム(Ramer–Douglas–Peuckerアルゴリズムとも呼ばれます)を使用して形状を分析します。さらに、バウンディングボックスのアスペクト比をチェックして、形状が長方形であることを確認し、ページ幅をチェックすることもできます。これは、あなたのケースでは既知の指標のようです。PyImageSearchはこの素晴らしい記事をしました:cv2.approxPolyDP()

    • OpenCV形状検出
  • 関連する質問、に見ての提案もあったハフ線検出の縦線を同じようにターンを取って水平線を検出するためには、。このアプローチがどれほど信頼できるか100%確実ではありません。


ボックスフレームを見つけたら、次のステップは、ボックスフレーム内にテキストがあるかどうかを確認することです。一般に、テキストの検出はより広範な問題であり、それを行うには多くの方法があります。ここにいくつかの例を示します。

  • EASTテキスト検出器を適用する

  • PixelLink

  • 正八胞体(例:経由pytesseract)が、誤検知が多すぎないかどうかはわかりません

  • ボックスが空であるかどうかという単純なケースの場合は、内部の平均ピクセル値を確認できます(例:cv2.countNonZero()。例:

    • OpenCVを使用して空の長方形を識別する方法
    • OpenCVを使用して黒いピクセルを数えます

その他の参考資料:

  • 畳み込みニューラルネットワークを使用した四角形/長方形の検出に関するアイデア