2011-11-09 22 views
0

私は画面上に私の画像を見つけようとしています。イメージはコンピュータに保存され、Image.FromFile()を使用して読み込まれます。画面上の画像を見つける

私は

var image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb); 
var gfx = Graphics.FromImage(image); 
gfx.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy); 
return image; 

を使用して、画面のスクリーンショットを作成していますが、今、私はどのように画面の最初の画像を検索するには見当がつかない。

私はstackoverflowのビットを検索し、いくつかの答えを見つけましたが、適切な例はありません。

私のC#のスキルは、私が理解して遊ぶことができる基本的な例でうまくいきます。

誰も私にそのようなサンプルを提供できますか?

+0

「どのように画面の最初の画像を検索します。」:それは何を意味するのでしょうか?私はあなたの目標を理解していません –

+0

例として、Google Chromeのホームボタンの画像があります。私が望むのは、プログラムがどこにあるのかを検出してそれを押すことです。 –

+0

イメージが異なる座標で画面にロードされていますか?または毎回同じ座標ですか? – Tudor

答えて

1

あなたが何を記述しているかは、テンプレートマッチングと呼ばれています。大きな画像のどこかに小さな画像(テンプレート)があります。

アルゴリズムに関する情報はたくさんありますが、代わりにライブラリを使用することをお勧めします。

OpenCVはこのためのよく知られたオープンソースライブラリであり、使いやすいです。 OpenCVはC++で書かれているので、C#環境でOpenCVを使用するのは難しいかもしれません。幸いにもEmguCVと呼ばれるC#ポートもあり、これは自由に使用できます。

http://www.emgu.com/wiki/index.php/Main_Page

関連する問題