오토핫키 강좌 9강 - 이미지서치(ImageSearch)
오토핫키 이미지서치는 컴퓨터 화면에서 이미지를 찾아주는 명령어입니다.
클릭을 원하는 부분을 캡쳐해서 이미지과 똑같은 부분을 클릭하게 만들 수 있습니다.
오토핫키 이미지서치를 이용하기 위해서는
컴퓨터 화면을 캡쳐할 수 있는 프로그램이 필요합니다.
캡쳐 프로그램 다운로드 https://gogildong.com/2
이미지서치(ImageSearch)란?
이미지파일을 인식해서 컴퓨터화면에서 이미지를 찾아주는 명령어입니다.
[문법]
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, *TransN *N, ImageFile
[설명]
OutputVarX, OutputVarY : 이미지를 찾았을 때 좌표에 대입되는 변수입니다.
X1, Y1 : 이미지서치 범위의 시작 좌표입니다.
X2, Y2 : 이미지서치 범위의 끝 좌표입니다.
*TransN *N : *TransN는 이미지에서 제거할 색상입니다. N는 오차범위(0~255). 오차범위가 작을수록 이미지를 정확하게 찾을 수 있습니다. 이미지를 찾지 못한다면 오차범위를 올려야 합니다.
ImageFile : 이미지 파일 이름입니다.
※ 이미지서치
"고길동.png" 라는 이미지을 찾았다면 마우스왼쪽을 클릭합니다.
컴퓨터 해상도 1920X1080 일때
0,0좌표부터 1920,1080좌표까지 이미지탐색을 합니다.
[해석]
F1:: ; F1 누르면 시작합니다.
ImageSearch,vx,vy, 0,0, A_ScreenWidth, A_ScreenHeight, *60 고길동.png
if ErrorLevel=0 ; 이미지를 찾았다면
{
MouseClick, Left, %vx%,%vy% ; 이미지를 마우스왼쪽 클릭을 합니다.
}
if ErrorLevel=1 ; 이미지를 찾지 못했을 경우
{
MsgBox,인식을 못한다 이미지바꿔라 ; 메시지박스를 출력합니다.
}
F2::Pause ; F2 누르면 일시정지 & 재시작
F3::ExitApp ; F3 누르면 오토핫키 종료
※ if ErrorLevel 대해서
찾았을 경우
if ErrorLevel=0
못찾았을 경우
if ErrorLevel=1
오류가 생긴 경우
if ErrorLevel=2
※ 컴퓨터 좌표 이해하기 (0,0, A_ScreenWidth, A_ScreenHeight)
0,0좌표부터 컴퓨터해상도까지 화면전체에서 이미지탐색을 합니다.
다른창을 열었을 때 창의 0,0좌표부터 좌표끝 부분까지 이미지탐색을 합니다.
활성 창의 화면전체를 스캔해서 이미지를 찾아내는데 화면에 동일한 이미지가 여러개 있을 때 내가 원하는 이미지를 찾지 못하고 다른 동일이미지를 찾아낼 수 있어서 이미지 찾는 범위를 만들어주면 해결됩니다.
※ 이미지서치 빠르게 잘 찾아낼 수 있게 만들기
예를 들어 로컬디스크를 클릭하게 만들어보겠습니다.
① "로" 글자를 캡쳐합니다.
② "로" 시작좌표와 끝좌표
③ 이미지를 찾으면 "로" 글자를 클릭합니다.
이미지를 못 찾으면 메세지박스가 출력됩니다.
※ 이미지서치 여러개와 키보드 누르게 만들기
이미지파일이 많을 때 폴더를 만들어서 경로를 지정해주면 편합니다.
게임시작 이미지를 찾으면 클릭이후 키보드가 작동될 수 있도록 하는 등, 다양하게 연구해서 만들어보세요.
예를 들면 if ErrorLevel=1를 이용해서 메세지박스말고 키 입력을 넣을 수도 있습니다.
※ 투명한 배경이거나 배경색 때문에 이미지서치가 잘 안될 때
예를 들어 배경을 제외하고 글자만 클릭되게 만들어 보겠습니다.
1. "로" 글자를 캡쳐합니다.
2. "로" 흰색배경을 그림판이나 포토샵으로 다른색깔로 바꿔줍니다.
저는 빨간색으로 바꿨습니다.
3. 빨간색을 제외하고 "로" 글자만 클릭하게 됩니다.
*Trans색깔은 색깔을 투명화시켜서 검색되지 않도록 합니다.
*TransWhite *FFFFFF *Trans0xFFFFFF 이미지파일에서 흰색를 제외하고 검색합니다.
*TransBlack *TransFFFF00 *Trans0xFFFF00 이미지파일에서 검정색를 제외하고 검색합니다.
*TransRed *TransFF0000 *Trans0xFF0000 이미지파일에서 빨간색을 제외하고 검색합니다.
※ 좌표와 색깔코드 보는 방법
오토핫키 실행하면 작업 표시줄에 H 아이콘 생깁니다.
H 오른쪽 마우스 클릭해서 Window Spy 들어갑니다.
Window는 X좌표, Y좌표
Color에서 색깔코드를 볼 수 있습니다.
'오토핫키 > 오토핫키 강좌' 카테고리의 다른 글
오토핫키 강좌 7강 - 좌표이해하기 (0) | 2018.12.24 |
---|---|
오토핫키 강좌 8강 - 무한반복(Loop) (0) | 2018.12.24 |
오토핫키 강좌 9강 - 이미지서치(ImageSearch) (10) | 2018.12.23 |
오토핫키 강좌 10강 - 픽셀서치(PixelSearch) (1) | 2018.12.23 |
오토핫키 강좌 11강 - 비활성마우스, 비활성키보드 (ControlClick, ControlSend, PostMessage, SendMessage) (1) | 2018.12.23 |
오토핫키 강좌 12강 - 변수 (3) | 2018.12.23 |
잘만드셨네요. 잘보고 갑니다.
배경색이 여러색이 있고 원하는 검색은 흰색 숫자 입니다
흰색의 숫자만 어떻게 인식 시킬수 있을까요
안녕하세요 이미지서치를 좌표로고정안하고
움직이다가 지정 좌표안에서 원하는 이미지가나왔을때 그이미지를 선택하게는 어떻게 해야되나요?
정말 잘 만드셨네요.
저도 오토핫키로 게임 매크로 많이 만들어봤고 c++이나 java, python 같은 메이져 언어에 익숙치 않아서 오토핫키로 거의 모든 자동화를 만들어 쓰고 있는데요.
그래서 나름 오토핫키에 대해서 많이 안다고 생각하고 강좌도 만들어볼까 생각했는데 님 블로그 보고 포기했습니다.
정말 중요한 내용들 딱딱 집어내시고 캡쳐랑 편집도 정성들여서 하신 모습에 넉다운 ㅋㅋ
틈틈히 들어와서 감사히 배우겠습니다 ^^
이미지 위치는 오토핫키 위치랑 동일하게 둬야 되나요???
경로는 일반경로 D:\down 이런식으로 해야 하나요?????
그냥 파일명만 적으면 해당 스크립트 파일이 있는 기준으로 탐색하고 전체경로를 넣으면 해당 경로로 탐색
잘보고있습니다 제가 녹스라는 앱뮬 4개를 켜서 게임을 돌리는데 그4개를 한번에 확인하는 방법이 있을까요?
보니깐 하나씩 클릭을 해야 이미지서칭 한다던데...
자세한 설명 감사합니다^^
제가 게임상이미지를 서치해서 그림판에 넣고 이미지 서치코드를 짰는데요
그림판에 넣은 이미지에 얇은 선 한개만 생겨도 이미지인식에 실패합니다..
오차율을 60%로 해도 안되고 99%로 해도 안되고 1%로 해도 안되네요..
뭐가문제일까요?
코드도 없이 그냥 안된다고 하면 대답을 할 수 있는 사람이 없을듯 한데요?
이미지를 한개가 아닌 여러개를 서치해서 마우스 클릭을 하려면 어떻게 해야하나요??