モルフォロジー演算のみを使用して画像からテキストを再構築するにはどうすればよいですか?


16

できる限り次の画像からテキストを再構築したいと思います。トリッキーな部分は、画像の形態学的操作を使用してのみやりたいことです

侵食、膨張、開閉を使用してみましたが、結果はあまり良くありません。

これも可能ですか?

ここに画像の説明を入力してください


拡張は、これらのファジーエッジを滑らかにする最初のステップのように見えますか?
ポールR

はい、これは私が試したすべての組み合わせの最初のステップだと思います。

2
もっと問題を定義する必要があると思います。たとえば、読みやすくするにはどうすればいいかというと、おそらく少しの拡張で十分でしょう。変形プロセスの前にどのように見えるかを正確に再構築したい場合、形態学的アルゴリズムは使用されている特定のフォントの形状を認識していないため、それは不可能です。
so12311

読みやすくするために、[0 1 0; 1 1 1; 0 1 0]。テキストを元のテキストと非常に近く見えるようにするものを探しています。
ジャックオブセン

回答:


6

形態学的に変換された画像などを加算/減算したい場合、各ピクセルの近くにある信号ピクセルの数と、その数に基づいたしきい値をカウントできます。

img = imread('http://i.stack.imgur.com/wicpc.png');

n = false(3);n(4) = 1;
s = false(3);s(6) = 1;
w = false(3);w(2) = 1;
e = false(3);e(8) = 1;

%# note that you could convolve with a cross instead
fourNeighbourCount = imerode(img,n) + imerode(img,s) + imerode(img,w) + imerode(img,3) + img;

ここに画像の説明を入力してください

%# require at least two neighbours
img = fourNeighbourCount > 1;

ここに画像の説明を入力してください

その後、中央に穴がある3x3マスクで畳み込むと、次のようなものが得られます。

ここに画像の説明を入力してください


3

これは解決すべき非常に興味深い問題です!中央値フィルターを試してください。詳細については、こちらこちらのリファレンスをご覧ください。

私はあなたの問題をシミュレートするために手を入れていませんが、これは提案です。私の腸の感覚は、それがあなたに大きな利益を与えるかもしれないと言っています。あなたの場合、画像には境界線の周りに余分な白い点があり、アルファベットのどちら側にあるかに応じて、完全な白または完全な黒に変換されます。中央値フィルタリング後の外観は次のとおりです。

ここに画像の説明を入力してください


1

何らかの理由でモルフォロジー演算の使用に限定されている場合、指向のクローズ演算の「投票スキーム」の使用を検討できます。

モルフォロジー演算の1つの問題は、方向性を実際に考慮していないことです。中央のピクセルの場合、このような近傍

1 0 0
1 1 0
0 1 1

本当にこのような近所と違いはありません

0 1 0
1 1 0
1 1 0

膨張と収縮は、必要に応じて方向に偏っていないため、問題を引き起こす可能性があります。したがって、できることの1つは、次のようなカーネルを使用して、最も適切な方向に偏った形態学的操作を見つけることです。

1 1 0   1 0 0   1 0 0
0 1 0   1 1 0   1 1 0
0 1 1   0 1 1   0 1 1 . . .

これは5 x 5カーネルではより良いでしょうが、その考えは十分に明確だと思います。基本的に、コーナー検出カーネルの概念は少し拡張されているため、ラインセグメント検出カーネルになります。また、これを使用して最適な曲線を見つけることもできます。

0 0 0 1 1
0 0 1 1 0
0 1 1 0 0 
0 0 1 1 0
0 0 0 1 1

明らかにこれは膨大な数のカーネルにつながりますが、基本的なアイデアがうまく機能する場合は、最適なカーネルがシングルパスで見つかるようにテクニックを最適化する方法があります。

いずれにせよ、複数のカーネルといくつかのロジックを使用する場合、(x、y)での各操作には、従来の形態学的ステップよりも多くの計算が必要です。

  1. 各ピクセル(x、y)で、いくつかの形態学的演算子のそれぞれを適用します。各演算子について、形態学的演算の結果と、入力がカーネルに一致する度合いの両方を計算します。(「度」=一致するピクセル数)
  2. 実際のオン/オフピクセル構成に最も近いカーネルの形態学的結果を選択します。

カーネルのサイズは、入力のサイズと一致する必要があります。より大きなカーネルを使用する代わりに、「スプレッド」カーネルを使用して操作の数を減らすことができます。次のカーネルは、半径が1より大きい3 x 3カーネルです。

1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 0 0 0 0 0 0
1 0 0 0 0 0 1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.