2011-11-09 3 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 크롬 홈 버튼 이미지가 있습니다. 내가 원했던 것은 프로그램이 어디에 있는지 감지하고 누를 수있는 프로그램입니다. –

+0

이미지가 다른 좌표로 화면에로드 되었습니까? 아니면 언제나 같은 좌표? – Tudor

답변

1

설명하는 것을 템플릿 매칭이라고합니다. 큰 이미지의 어딘가에 작은 이미지 (템플릿)가 있습니다.

알고리즘에 대한 정보가 많이 있지만 실제로 라이브러리를 대신 사용하는 것이 좋습니다.

OpenCV는 잘 알려진 오픈 소스 라이브러리이며 사용하기 쉽습니다. OpenCV는 C++로 작성되었으므로 C# 환경에서 OpenCV를 사용하기가 어려울 수 있습니다. 다행히 EmguCV라는 C# 포트도 있으며,이 포트는 무료로 사용할 수 있습니다.

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