반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

LearningNote

[오토핫키] 이미지 서치(1) 본문

오토핫키

[오토핫키] 이미지 서치(1)

LN 2020. 7. 16. 00:18
반응형

이번엔 오랜만에 재미있는 것을 소개해드릴게요.

 

오토핫키에는 이미지를 찾는 명령어가 있습니다.

저장해놓은 이미지 파일이

화면상에 일치하거나 혹은 비슷한 부분이 있으면,

그것이 어느 좌표에 있는지 알 수 있습니다.

 

먼저, 간단 도움말부터 살펴보겠습니다.

ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile

 

OutputVarX 와 OutputVarY 는 이제 좀 익숙해지셨나요?

결과값이 담아질 변수입니다.

이미지 서치 명령어에서는 이미지가 발견된 x 좌표와 y 좌표가 각각 담깁니다.

 

X1, Y1, X2, Y2 는 각각, 이미지를 찾을 시작점과 끝점의 좌표를 뜻합니다.

 

ImageFile 인자에는 이미지 파일명을 입력하시면 됩니다.

이때 주의하실 점이 있습니다.

 

이미지는 bmp 또는 png 파일로 준비하셔야 합니다.

gif, jpg 등은 파일이 저장될 때 손실이 발생하여

이미지 인식의 정확도가 떨어지기 때문입니다.

 

이미지 서치의 범위

 

이제 기본적인 실습을 해보겠습니다.

윈도 그림판에서 색상 편집기 아이콘을 찾아 그 좌표를 클릭하는 예제입니다.

 

먼저, 이미지 파일을 미리 준비합니다.

캡처 프로그램을 이용하여 다음의 범위를 이미지로 저장해주세요.

파일명은 image1.png 로 하겠습니다.

 

참고적으로 말씀드리면,

이미지를 저장하실 때는

이미지의 특징이 잘 나타나는 부분을

가능한 한 작게 따내셔야 합니다.

 

그래야 인식률이 높아지고 속도가 빨라지기 때문입니다.

 

이미지 저장

 

image1.png

 

이제 코드를 작성합니다.

 

#SingleInstance, Force


F4::
ExitApp


!1::
ImageSearch, vX, vY, 0, 0, 1600, 1200, ./image1.png
Click, %vX%, %vY%, 1
return

 

ImageFile 인자에는 파일명을 입력한다고 했는데,

앞에 './' 는 현재 폴더라는 뜻입니다.

 

만약 image 라는 폴더 안에 파일을 저장하셨다면

./image/image1.png

 

D 드라이브 루트 폴더에 저장하셨다면

d:/image1.png

 

이런 식으로 입력하셔야 합니다.

 

또 한 가지 알아두어야 점은

좌표계를 따로 지정하지 않았기 때문에

기본 좌표계인 Relative 가 적용되어

현재 활성화된 창 기준의 좌표로 이미지를 찾습니다.

 

좌표계에 대한 내용이 기억나지 않으신다면,

잠시 복습을 하고 오시기 바랍니다.

 

코드를 실행하면 색상 편집기 창이 뜨는 것을 확인할 수 있습니다.

 

색상 편집기

 

ImageSearch

 

몇 번 반복해서 실행해보세요.

이때 한 가지 짚고 넘어가야 할 중요한 내용이 있거든요.

 

바로 클릭 지점입니다.

찾고자 하는 이미지에서 어떤 위치가 클릭되는지를 살펴보시기 바랍니다.

 

저장된 이미지의 좌상단이 클릭되네요.

 

따라서, 캡처가 되어야 할 부분의 좌상단은

클릭이 가능한 지점이어야 합니다.

 

그렇지 않으면 클릭 명령어를 수행하더라도

아무런 반응이 없거나 엉뚱한 반응이 나타날 테니까요.

 

신기하지 않나요?

코드를 몇 줄 적지도 않았는데

이미지를 찾아 클릭까지 해주는 것이 정말 신기합니다.

 

하지만, 이미지 서치는 속도가 빠른 편이 아닐 뿐만 아니라,

안정적인 방법도 아닙니다.

 

컴퓨터마다 그래픽을 처리하는 방식이 다를 수 있기 때문에

내 컴퓨터에서는 잘 되던 것이 다른 컴퓨터에서는 안 될 수도 있어요.

이 점 참고하시면 좋겠네요.

 

반응형

'오토핫키' 카테고리의 다른 글

[오토핫키] 이미지 서치(3)  (0) 2020.07.21
[오토핫키] 이미지 서치(2)  (0) 2020.07.20
[오토핫키] 반복문(2)  (0) 2020.07.13
[오토핫키] 반복문(1)  (0) 2020.07.10
[오토핫키] 조건문(2)  (0) 2020.07.08
Comments