2017-09-30 4 views
0

私はキャプチャソルバーを作ろうとしていますが、私はいくつかの問題に遭遇しました。私が解決しようとしているキャプチャは、異なる色の背景を持っています。色付きキャプチャをグレースケールに変換するには?

Captcha One Captcha Two

私は簡単に私は数字だけのいくつかを示し convert *.png -threshold 50% *.pngを試してみましたtesseract-ocr

によって認識することができるように、白地に黒のテキストに変換する必要があります。

enter image description hereenter image description here

+0

OpenCVのタグがあなたのImageMagickの質問とは無関係です。 – zindarod

+0

私はキャプチャを解決するためのいくつかの質問がトピックから外されていることを思い出しているようです(おそらく私はImageMagickフォーラムを考えています) –

+0

ImageMagickフォーラムで何かを本当に想起していました –

答えて

1

単純な50%の閾値に伴う問題は、両方の色が50%グレーよりも軽くすることができ、従って白として出てくることです。逆に、両方の色が中間色よりも暗い場合があり、したがって黒として出現します。

2色の量子化を行って2色にする必要があります。グレースケールに戻って正規化すると、明るい色が白くなり、暗い色が黒くなります。私がテストするために、コンピュータの近くにいないですが、それは次のようになります。

convert input.png -colors 2 -colorspace gray -normalize result.png 

さて、あなたはいくつかの画像は(黒地に白の代わりに、白地に黒)が反転しているので、あなたは、左上をテストすることができますどちらかでしょうそれが白であれば、画像を反転させる。あるいは、画像の平均値を得ることができ、0.5より大きい場合は、画像が大きく白であることを示し、したがって反転する必要があります。

反転:

convert input.png -negate output.png 

で左上のピクセルを取得:

convert image.png -format '%[pixel:p{0,0}]' info:- 

と平均値取得:

convert image.png -format "%[mean]" info:- 
+0

私は 'convert input.png -colors 2 -colorspace gray -normalize result.png'を試みましたが、oututはまだ読めません。 https://imgur.com/a/Tstjb –

+0

申し訳ありませんが、エスケープ文字は別の画像であると考えました。サンプルコードにアスタリスクがあるためです。いいえ、キャプチャ全体が単一のイメージであれば私の提案はうまくいかないでしょう。私は別の考えを持っています。 –

+0

これはおそらくキャプチャを意図した人が意図したものです。スパマーが壊れるのをより困難にする? – Bonzo

関連する問題