LearningNote
[오토핫키] 이미지 서치(1) 본문
이번엔 오랜만에 재미있는 것을 소개해드릴게요.
오토핫키에는 이미지를 찾는 명령어가 있습니다.
저장해놓은 이미지 파일이
화면상에 일치하거나 혹은 비슷한 부분이 있으면,
그것이 어느 좌표에 있는지 알 수 있습니다.
먼저, 간단 도움말부터 살펴보겠습니다.
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile
OutputVarX 와 OutputVarY 는 이제 좀 익숙해지셨나요?
결과값이 담아질 변수입니다.
이미지 서치 명령어에서는 이미지가 발견된 x 좌표와 y 좌표가 각각 담깁니다.
X1, Y1, X2, Y2 는 각각, 이미지를 찾을 시작점과 끝점의 좌표를 뜻합니다.
ImageFile 인자에는 이미지 파일명을 입력하시면 됩니다.
이때 주의하실 점이 있습니다.
이미지는 bmp 또는 png 파일로 준비하셔야 합니다.
gif, jpg 등은 파일이 저장될 때 손실이 발생하여
이미지 인식의 정확도가 떨어지기 때문입니다.
이제 기본적인 실습을 해보겠습니다.
윈도 그림판에서 색상 편집기 아이콘을 찾아 그 좌표를 클릭하는 예제입니다.
먼저, 이미지 파일을 미리 준비합니다.
캡처 프로그램을 이용하여 다음의 범위를 이미지로 저장해주세요.
파일명은 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 가 적용되어
현재 활성화된 창 기준의 좌표로 이미지를 찾습니다.
좌표계에 대한 내용이 기억나지 않으신다면,
잠시 복습을 하고 오시기 바랍니다.
코드를 실행하면 색상 편집기 창이 뜨는 것을 확인할 수 있습니다.
몇 번 반복해서 실행해보세요.
이때 한 가지 짚고 넘어가야 할 중요한 내용이 있거든요.
바로 클릭 지점입니다.
찾고자 하는 이미지에서 어떤 위치가 클릭되는지를 살펴보시기 바랍니다.
저장된 이미지의 좌상단이 클릭되네요.
따라서, 캡처가 되어야 할 부분의 좌상단은
클릭이 가능한 지점이어야 합니다.
그렇지 않으면 클릭 명령어를 수행하더라도
아무런 반응이 없거나 엉뚱한 반응이 나타날 테니까요.
신기하지 않나요?
코드를 몇 줄 적지도 않았는데
이미지를 찾아 클릭까지 해주는 것이 정말 신기합니다.
하지만, 이미지 서치는 속도가 빠른 편이 아닐 뿐만 아니라,
안정적인 방법도 아닙니다.
컴퓨터마다 그래픽을 처리하는 방식이 다를 수 있기 때문에
내 컴퓨터에서는 잘 되던 것이 다른 컴퓨터에서는 안 될 수도 있어요.
이 점 참고하시면 좋겠네요.
'오토핫키' 카테고리의 다른 글
[오토핫키] 이미지 서치(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 |