2016-07-18 7 views
1

私はWindowsアプリケーションのオブジェクト、主にコンピュータゲームを認識したいと思います。私はOpenCVでウィンドウを開き、実行中のゲームアプリケーションにあらゆる種類のエフェクトを適用し、UI要素、メッセージ、画面上の文字などのオブジェクトを認識することでこれを達成したいと思います。OpenCVのソースとしてWindowsアプリケーションをどのように開くのですか?

OpenCVは入力としてビデオとウェブカメラのみを許可するので、実行中のアプリケーションをOpenCVのソースとして開く方法はありますか?

ゲーム開発では、同様のテスト方法を使用するテストアプリケーションがありますが、見つからないことがあります。

また、コンピュータプログラムやコンピュータゲームの仮想オブジェクトの認識について議論するときに使用される用語についてもわかりませんが、これはまさに私がしたいことです。

私はフォーラム、記事、またはこれについて書かれた何かを検索しようとしましたが、何も見つかりませんでした。どんな助けもありがとう。

+0

hwindowDC = GetDC(hwnd); hwindowCompatibleDC = CreateCompatibleDC(hwindowDC); SetStretchBltMode(hwindowCompatibleDC、COLORONCOLOR); –

答えて

0

私はOpenCVを1年間使用しましたが、実行中のアプリケーションを渡すことができるかどうかはわかりません。

これに代わる方法として、デスクトップの現在のスクリーンショットを提供する機能を使用することができます。だから、それを入手してOpenCVに渡すことができます。

この方法で定期的にスクリーンショットを作成し、認識を使用することができます。

Windowsで作業している場合は、これは何とかお手伝いをしますthis discussion.

希望が必要になる場合があります。

+0

うん、これは私がすでに分かっている部分です。問題は、イメージをメモリに保存し、ファイルに保存する必要がないことです(長期的にはHDDを破壊します)。私はメモリにBMPスクリーンショットを保存すると(Python変数/リファレンスまたはC++ポインタに割り当てられているかどうかは関係ありません)、OpenCV関数を使用してアクセスすることができると仮定しています(呼び出しに使用する言語に関係なくAPI)を実行し、必要な操作を実行します。 私は間違っているか、これは本当に私がそれを想像する方法ですか? – Disane

0

私は数ヶ月前に私の実験プロジェクトと成功としてopencvのソースとしてデスクトップを使用しているすべての方法を試してきましたが、スピードやプロセッサーが依存しているようにウィンドウ内にトレイルがあります。デスクトップをopencvライブラリからではなくソースとして使用する独自の関数を使用します。そしてそこから私はカスタムのものを続け、メモリから何かを持っているいくつかのバグで立ち往生しました。私はstackoverflowに投稿しました。この情報が役立つことを願っています。

関連する問題