0

特定の Web CAPTCHA をクラックしようとしています。文字をセグメント化してANNに渡すことでそれを行う予定です(ほとんどの機能については、ノイズを完全に除去するのは難しいと思われるため、瞬間の方法を使用します)

キャプチャは非常にノイズが多く、残念ながらノイズと実際のテキストの間に色の違いがないため、色に基づく分離は機能しません。かなり考えた後、キャプチャのピクセルにフラッド フィル スタイルのアルゴリズムを実装して、切断された小さなコンポーネントを分離することに成功しました。この後、次のような結果になりました。 かなりのノイズ除去後のCAPTCHA

ほとんどのノイズはなくなりましたが、一部は文字自体の周囲に残っています (テキストに触れているため)。私は画像フィルターの専門家ではありませんが、残っているノイズを減らして文字を強調する適切なフィルターを見つけるのは非常に難しいと感じています. この目的に使用できるフィルターに関するアイデア。

(注:これには画像操作ツール/ライブラリを使用していません。生のピクセル操作コードを書いていますが、畳み込みカーネルがあればほとんどのフィルターを実装できます)

問題は、このノイズが原因で、文字のセグメンテーションが困難になっていることです。ノイズがあり、一部の文字が接触しているため、明らかに暗いピクセルのない垂直線を見つけようとしてもうまくいきません。これらを効率的にセグメント化する方法についてのアイデアはありますか?

編集:元の画像 キャプチャ元画像

4

1 に答える 1

1

Closing や Openingなどのモルフォロジー演算子を試してみるのはどうですか? それらは実装が非常に簡単で、シンプルですが効率的なツールです。

3x3 クロス構造要素 (カーネル) で 1 つ閉じて、画像を 2 値化すると、ノイズはほとんどなくなります。

ここに画像の説明を入力

もう少し努力すれば素晴らしい結果が得られると確信しています。

編集:物事を少し明確にするために、閉鎖は膨張とそれに続く浸食です(開放の場合は逆です)。膨張は、画像内のすべてのピクセルに、その周囲のカーネル (構造要素) 内のすべてのピクセルの最大値を割り当てます。逆に、浸食は、その周囲のカーネル内のすべてのピクセルの最小値をすべてのピクセルに割り当てます。

ウィキペディアのリンクとそこにある外部リンクも見てください。

于 2014-12-15T14:08:32.403 に答える