개발 관련/SW, App 관련

Autoit에서 ImageSearch 사용하기

by 소서리스25 2023. 5. 21.
반응형

Autoit에서 ImageSearch 사용하기

 

Autoit의 강력한 기능 중에 하나는 범용적인 자동화 도구를 손쉽게 만들 수 있도록 도와주는 확장성을 갖는 도구라고 본다. 그중에서도 타 애플리케이션에서도 종종 쓰이는 ImageSearch 라이브러리를 이용한 이미지 추적이다. 강력하다고 보는 이유는 이미지의 퀄리티에 따라 인식의 범위를 조절할 수 있기 때문이다.
 
기본 준비물은 Autoit 포럼에 있는 ImageSearch.au3와 라이브러리파일인 ImageSearchDLL.dll 파일이다. 이전 포스팅에서 소개했던 것처럼 install 실행파일에 포함할 수도 있다.
 

ImageSearch.au3
0.01MB
ImageSearchDLL.dll
0.07MB

 
Autoit 포럼에 가면 64비트도 다운로드 할 수 있다. OS 따라 정할 수 있으며, Imagesearch UDF라는 응용된 것도 있으니 참고하기 바란다.
Image Search UDF - Automation - AutoIt Forums (autoitscript.com)

 

Image Search UDF

Use MouseClick() need: #RequireAdmin Dll is already integrated in UDF ! ; #INDEX# =============================================================== ; Title .........: ImageSearch ; AutoIt Version : 3.x ; Language ......: English ; Description ...: Check imag

www.autoitscript.com

 
 
그러면 지난번 포스팅했던 Serial Test 코드를 아래와 같이 약간만 편집해서 사용하도록 하자.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ImageSearch.au3>
 
HotKeySet("{ESC}""_Exit");
 
Global $_searchImg, $_x = 0, $_y = 0;
 
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Image Search Test"385200);
$Button1 = GUICtrlCreateButton("Image Search Pos"3211214565);
$Button2 = GUICtrlCreateButton("Image Search Move"21611214565);
$DebugText = GUICtrlCreateLabel("Debug Text : "321620017);
GUISetState(@SW_SHOW);
#EndRegion ### END Koda GUI section ###
 
 
 
_Main();
 
Func _Main();
 
   While 1;
 
        ; 이벤트 처리
          $nMsg = GUIGetMsg();
 
        Switch $nMsg;
 
            Case $GUI_EVENT_CLOSE
               Exit;
 
            Case $Button1
                SearchImg(0);
 
            Case $Button2
                SearchImg(1);
 
        EndSwitch
 
        sleep(20);
  Wend;
 
EndFunc;
 
 
Func SearchImg($_mode)
 
    $_searchImg = _ImageSearchArea("_img.bmp"10019201080, $_x, $_y, 10);
;~     $_searchImg = _ImageSearch("_img.bmp"1, $_x, $_y, 50);
 
    if($_searchImg = 1Then
        if($_mode = 1Then MouseMove($_x, $_y, 10);
 
        GUICtrlSetData($DebugText, "Debug Text : Find x : " &$_x&", y : "&$_y);
 
    Else
        GUICtrlSetData($DebugText, "Debug Text : Not Find or Error");
 
    EndIf
 
 
EndFunc
 
 
Func _Exit();
    Exit;
EndFunc
cs

 
코드의 내용은 아래와 같은 pdf 아이콘을 화면에서 찾는 것이다.
영역을 지정하는 함수를 사용하여 화면 1920x1080내의 해당 아이콘이 있는지 찾는 것이다.

찾을 대상 아이콘 이미지
찾을 대상 아이콘 이미지

버튼 1은 포지션 값 가져오기이며 버튼 2는 마우스를 이동시키는 아주 간단한 사항이다.
 
이것을 응용하면 여러 이미지들을 배열로 입력하고 조건에 맞는 상황을 만들 수 있다. 심지어 웹카메라와 연결하여 간단한 사물인식까지도 가능하다. 물론 제대로 된 성능은 기대하기 어렵지만 가능은 하다.
 
 

반응형

댓글