2016-10-13 12 views
0

テキストを含む2つのスクリーンショットを比較したいと思います。基本的に、両方のスクリーンショットにはかなりフォーマットされたテキストが含まれています。私は両方の画像に同じ書式が反映されているのか、両方の画像の同じ場所に同じテキストが表示されているのかを比較したいと思います。私は今それをやっている方法イメージ内のテキストの周囲にバウンディングボックスを配置する

がある -

1. Apply bilateral filters to remove the underlines of text. 
2. Apply threshold with value 180 as min value and clear them out 
3. Apply Gaussian blur on the image to remove the unfilled space between the characters. 
4. Apply threshold again with value 250 as min value. 
5. Compute contours in the images 
6. Draw rectangle bounding box around contours 
7. use O(n^2) algo to find out max overlapped rectangle and compare text within it. 

問題は、両方の画像に表示されて輪郭がすなわちimage number of contours are 38 while other contains 53の一つに、異なっているですが。私は汎用的な解決策を持ちたいと思っており、イメージの内容に依存したくありません。しかし、確かに一つのことは、イメージには整形されたテキストが含まれていることです。

おかげ

答えて

0

私はあなたが正確にしたいですか理解してわからないが、画像内の単語の周りにバウンディングボックスを取得するために、私はこれを行うことができます:

  1. は良いしきい値を取得する処理を適用します。テキストだけ、黒の背景、白のテキスト。この手順は、画像の種類と品質によって異なります。
  2. 各行の合計を計算します。合計は、テキストがあり、各行の間のスペースにあるすべての行がヌルである必要があります(ノイズがある場合は、この値にしきい値を設定できます)。各テキスト行の上/下の行を見つけることができます
  3. 手順2で見つかったテキスト行ごとに各列の合計を計算します。ステップ2と同じですが、単語の列は0とは異なるはずです。単語と文字の間のスペースをすべて見つけることができます。 2つの単語の間のスペースになるには小さすぎるスペースをすべて削除します。
  4. おめでとうございます。各単語の上/下の行と最初の/最後の列があります。
+0

お返事ありがとうございます。私はこれをやっている理由は、2つの画像に同じテキストが含まれていて同じフォーマットである、つまりフォーマットが同じであるかどうかをチェックしたいのです。彼らがどれほど遠くにいるのか、どれくらい遠いのかを伝えることができるはずです。あなたが念頭に置いていれば、いくつかの異なる方法を提案できますか? – codeomnitrix

+0

2つのスクリーンショットの間の唯一の変換が翻訳のみである場合、相互相関を使用することができます。それらが同一である場合、最大は、1つの画像の2乗の和に等しくなければならない。あなたはテキストが同じかどうかを知ることができますが、私はそれが非常に堅牢であるとは思わない。 あなたは私の前の答えを使って単語の数を数え、各単語の表面を(1つずつ) –

関連する問題