0

非常に単純なCAPTCHAを簡単に壊すことができるかどうかを確認するために、私はプログラムを作成しようとしています(できるだけ単純で小さい)。私がC++で書きたいと思っているこのプログラムは、次のことを行う必要があります。

  1. 画面の既知の領域の部分的なスクリーンショットを作成します。(CAPTCHAが常にまったく同じ場所にあると仮定します-たとえば、ピクセル500-600 x、ピクセル300-400 y)。

  2. CAPTCHAを個々の文字に自動的に分析します。(私がテスト用に作成するCAPTCHASはすべて、物事を簡単にするために、常に黒い背景に、十分に間隔を空けて、ほんの数個の白い文字を持っています。)

  3. 次に、プログラムは「カット」文字を、26個の要素を含み、それぞれが英語のアルファベットの1文字の画像を保持する文字の「既知の」画像の配列(CAPTCHAで使用される文字に似ています)と比較します。

  4. プログラムは、比較がマップされた画像に関連付けられた文字を取得し、そのキーをコンソールに送信します(std :: coutを介して)

私の質問は次のとおりです。タスク1〜3(4.はかなり簡単です)を処理できる使いやすいライブラリ(私はプログラミングの初心者です)はありますか?特に3番目のポイントは、私がほとんど価値のあるものを見つけていないことです。理想的なのは、このライブラリに「スコア」関数があり、画像がどれほど類似しているかを示すためにフロートを使用することです。次に、スコアが最も高いものがベストヒットです。(つまり、100.0は画像が同一であることを意味し、29.56は画像が非常に異なることを意味します。)

4

1 に答える 1

0

この仕事に適したライブラリはOpenCVです。http://opencv.org

OpenCVには、キャプチャのさまざまな要素をセグメント化するために必要なすべての低レベルの画像処理ツールがあります。次に、そのテンプレートマッチングモジュールを使用できます。

前処理なしで文字を直接検出することもできます。速度は遅くなりますが、キャプチャ画像は通常非常に小さいため、問題になることはめったにありません。参照: http ://docs.opencv.org/modules/imgproc/doc/object_detection.html#cv2.matchTemplate

ライブラリにアクセスするためのチュートリアルについては、http: //docs.opencv.org/doc/tutorials/tutorials.htmlを参照してください。

于 2013-02-17T16:09:03.427 に答える