次のようなキャプチャ画像があります。
マカフィーのTesserCapというユーティリティを使用して、画像に「チョッピング」フィルターを適用できます。(実行する前に、画像に白と黒の2色しかないことを確認しました。)テキストボックスに値2のフィルターを使用した結果に非常に感銘を受けました。ほとんどのノイズを正確に除去しましたが、本文はそのままにして、次のようになりました。
自分のスクリプトの1つにこのようなものを実装したかったので、TesserCapが使用している画像処理ライブラリを見つけようとしました。何も見つかりませんでした。画像を処理するために独自のコードを使用していることがわかりました。次に、プログラムがどのように機能するかを正確に説明するこのホワイトペーパーを読みました。それは私にこのチョッピングフィルターが何をするかについての次の説明を与えました:
指定されたグレースケール値の連続するピクセル数が数値ボックスに指定された数より少ない場合、チョッピングフィルターは、ユーザーの選択に従って、これらのシーケンスを0(黒)または255(白)に置き換えます。CAPTCHAは水平方向と垂直方向の両方で分析され、対応する変更が行われます。
私はそれが何をしているのか理解できません。私のスクリプトはPythonであるため、PILを使用して、説明されている引用のようなピクセルを操作してみました。簡単そうに聞こえますが、フィルターが何をしているのか正確にわからなかったためか、失敗しました。
(これは、円形のパターンを使用するわずかに異なるキャプチャから作られています。)
また、ImageMagickのconvert.exeで簡単に実行できるかどうかを確認してみました。彼らの-chopオプションは完全に異なるものです。-medianをいくつかの-morphologyコマンドと一緒に使用すると、ノイズの一部を減らすのに役立ちましたが、厄介なドットが表示され、文字が非常に歪んでしまいました。TesserCapでチョッピングフィルターを実行するほど簡単ではありませんでした。
だから、私の質問は次のとおりです:PythonでTesserCapのチョッピングフィルターを実装するにはどうすればよいですか?PILまたはImageMagickを使用していますか?そのチョッピングフィルターは、私が試したどの代替手段よりもはるかにうまく機能しますが、それを再現することはできないようです。私はこれに何時間も取り組んできましたが、まだ何も理解していません。