본문 바로가기
컴퓨터/오토핫키

imagesearch(이미지서치)의 모든것 , 기본 설명 및 반드시 필요한 지식 coordmode

by 큐브빌드 2021. 7. 19.
반응형

자동화를 꿈꾸던 저에게 크나큰 빛을 주었던 오토 핫키 기능 imagesearch(이미지 서치)입니다.

 

하지만 거의 1개월 정도 저에게 좌절감을 주었습니다.

 

그렇게 1개월정도 열심히 찾은 뒤 깨달았습니다.

 

imagesearch에서 가장 중요한 것 중 1개는 coordmode 였습니다.

 

사실 imageserach를 모르시는 분은 먼저 imagesearch에 대해서 공부를 하셔야겠죠?


Imagesearch(이미지 서치) 설명

imagesearch란 단어 그대로 이미지를 찾는 것입니다.

 

그래서 엄청난 것들을 할 수 있습니다. 

 

해당 이미지를 찾았을 때 해당 이미지를 클릭하라.

 

저런 행위들이 가능하게 됩니다.

 

모니터에 보이는 것을 그대로 찾을 수 있기 때문에 유용하다고 생각합니다.

 

그러면 ImageSearch의 사용방법부터 알아보겠습니다.

 

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

하나씩 의미를 알려드리겠습니다.

 

변수 내용
OutputVarX 이미지를 찾았을 때 이미지의 x좌표 위치
OutputVarY 이미지를 찾았을 때 이미지의 y좌표 위치
X1 , X2 모니터 기준 가로 X1좌표 ~ X2좌표 까지 이미지 검색 
Y1 , Y2 모니터 기준 세로 Y1좌표 ~ Y2좌표 까지 이미지 검색

이렇게입니다.

 

그리고 모니터 전체를 검색하는 방법은 

 

X1 = 0 , X2 = A_ScreenWidth ;0부터 해당 스크린의 폭 크기까지
Y1 = 0 , Y2 = A_ScreenHeight ;0부터 해당 스크린의 높이 크기까지

 

이렇게 해서 화면 전부를 검색할 수 있습니다.

 

하지만 대부분은 화면 전부를 검색하지 않고 일정 부분만 검색하게 됩니다.

이유
1. 속도 측면 = 작은 영역을 검색하는 게 큰 영역을 검색하는 것보다 빠릅니다.
2. 동일 이미지 노출 = 2개 이상의 동일한 이미지가 있을 때 검색해야 되는 특정 부분만 설정합니다.

 

그런 뒤 이미지 검색 결과 유무는 errorlevel을 통해서 확인이 가능합니다.

 

errorlevel과 if문을 함께 사용하여 찾았을 때 못 찾았을 때 처리가 가능합니다.

 

1::

imagesearch , x , y , 0 , 0 , A_ScreenWidth , A_ScreenHeight , *유사성 num5.jpg

if (errorlevel = 0)

{

	msgbox 이미지찾음 ;num5.jpg를 찾았다면 여기 코드

}

else if (errorlevel = 1)

{

	msgbox 이미지못찾음 ;num5.jpg를 못찾았다면 여기 코드

}

 

이런 식으로 말이죠.

 

※ 여기서 유사성 = 숫자로 표시해야 되며 0 ~ 255까지 입니다. (0은 완전 일치 , 255은 엄청 대충 보는 것)

 

※ 가장 위 1:: 것은 키보드 숫자 1을 선택했을 때 아래 코드가 진행되도록 한 것입니다.

 

이미지 서치를 예시로 한번 보여드리겠습니다.

이렇게 계산기의 숫자 5 버튼을 num5.jpg 파일로 하나 만들었습니다.

 

그렇게 해서 이미지 서치를 했습니다. 그런데 못 찾을 수 있습니다.

 

그럴 때는 유사성 값을 계속 수정해서 검색하시면 됩니다.

 

계산기를 선택한 상태에서 이미지 서치를 하면

아래와 같이 이미지를 검색할 수 있습니다.

 

그런데 동일한 상태인데 다른 프로그램을 선택한 뒤 검색을 하면 이미지를 찾을 수 없습니다.

 

이럴 때 사용되는 게 바로 아래 설명하는 CoordMode입니다.


CoordMode 설명

CoordMode , 타깃 타입 , 인식 방법

이렇게 입력해야 합니다.

타겟타입 내용
Pixel Imagesearch 또는 PiexlSearch를 체크방법
Mouse Mouse 위치에 체크방법
Caret * 이부분은 이번 내용과 무관하기 때문에 제외 하겠습니다.
Menu
Tooltip
인식방법 내용
Screen 화면 전체를 이용하여
Relative 활성화 되어있는 프로그램
* 기본값 (설정)
Window Relative와 동일합니다. 
*차이점이 있을것 같지만 못찾고있습니다.
Client 윈도우의 가장자리가 좌표에서 빠집니다.

해당 코드를 추가하니 일정을 선택해도 이미지는 검색이 됩니다.

 

coordmode , pixel , screen

1::

imagesearch , x , y , 0 , 0 , A_ScreenWidth , A_ScreenHeight , *50 num5.jpg

if (errorlevel = 0)

{

	msgbox 이미지찾음 ;num5.jpg를 찾았다면 여기 코드

}

else if (errorlevel = 1)

{

	msgbox 이미지못찾음 ;num5.jpg를 못찾았다면 여기 코드

}

이렇게 입력하면 검색이 됩니다.

 

coordmode , pixel , screen 없다면 현재 실행되고 있는 프로그램 내에서만 검색이 됩니다.

 

그리고 이것을 pixel 이 아닌 mouse로 변경한다면 동일합니다.

 

기본값은 항상 지금 실행되고 있는 프로그램입니다.

 

하지만 지금 실행되지 않는 프로그램을 선택해야 되거나 마우스를 움직여야 한다면

 

Coordmode , Mouse , Screen을 하시면 됩니다.

 

이것도 대표적인 예시 코드를 만들어보자면

 

2::

mousemove , 0 , 0

return


3::

coordmode , mouse , screen

mousemove , 0 , 0

return

 

키보드 2와 3을 누르면 마우스는 0, 0으로 이동합니다.

 

계산기를 화면 중앙에 둔 상태에서 테스트를 진행해보시면 금방 알 수 있습니다.

 

키보드 2를 누르면 계산기에 표시되어 있는 좌측 상단 부분으로 이동

 

키보드 3을 누르면 모니터 상 가장 좌측 상단 부분에 마우스가 이동하게 됩니다.

 

이렇게 해서 Coordmode는 사실 상당히 중요한 부분이며 빠트리면 안 되는 코드 중 1개입니다.

 


부가적인 도구

웹사이트를 다니다 그냥 이미지 서치에 편리한 도구가 있어서 하나 링크합니다.

https://blog.naver.com/jyaqz/222245478774

 


imagesearch(이미지서치) 테스트 프로그램

해당 파일은 오토핫키로 만든 프로그램으로 바이러스는 없지만 윈도우10에서 바이러스로 나올 수 있습니다....

blog.naver.com

속도를 최적화하기 위해서는 영역을 타이트하게 잡는 것도 하나의 방법이기 때문에 좋은 듯합니다.

반응형

댓글