NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    스크립트 화면 인식 매크로 - 이미지 조건 액션에 대해 알아보기. (픽셀 체크, 픽셀 서치, 이미지 체크, 이미지 서치, 이미지 매치)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 단순한 마우스, 키보드 매크로는 종류도 많고, 무료부터 유료까지 다양합니다. 단순한 기능을 가진 매크로 프로그램들은 무료 사용을 내세워서 가입자를 모집하고 유료화하는 방식의 비즈니스 모델을 사용합니다. 계속해서 새로운 매크로 프로그램이 만들어지고 있지만 지속적인 서비스를 유지하는 곳은 많지 않죠^^; 이유는 간단한데요. 단순한 마우스, 키보드, 이미지 서치와 같은 매크로는 개발자라면 누구나 일주일이면 만드는 간단한 프로그램이기 때문입니다. 개발자가 아니더라도 인터넷에 파이썬으로 마우스, 키보드, 이미지 서치 정도는 만들 수 있는 강좌가 많습니다. 비개발자도 약간의 노력(?)만 있으면 매크로 프로그램을 만들 수 있다는 뜻이죠~

     

    오늘은 엔지엠 에디터에서 제공하는 이미지 조건 액션들에 대해 알아보도록 하겠습니다. 이미지 조건 액션의 종류는 [ 픽셀 체크 ], [ 픽셀 서치 ], [ 이미지 체크 ], [ 이미지 서치 ], [ 이미지 매치 ]가 있습니다. 이외에도 [ 이미지 전체 매치 ]와 특정 영역의 이미지가 변화하는지 확인할 수 있는 [ 이미지 변화 체크 ]도 있습니다. 각각의 이미지 조건 액션들이 어떻게 동작하고, 활용할 수 있는지 알아보기 위해 이미지 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요.

     

    1. 픽셀 체크

    엔지엠 에디터를 실행하고, 새 스크립트에 픽셀 체크 액션을 하나 추가 해줍니다.

    EQlFoUj.png

     

     

    아래 동영상을 참고해서 그림판에 오랜지색 점을 선택(F1)하세요. 그리고 실행하면 사용자가 선택한 픽셀 값과 동일한 위치를 찾아줍니다. 속도는 이미지 조건들 중에서 가장 빠른 성능을 보여줍니다. 방금 00:00:00.036 시간이 걸렸는데요. 이미지 조건들의 성능을 확인하려면 [ 여기 ]를 참고하세요. 픽셀 서치보다 약 2배 정도 빠른 성능을 보여줍니다.

    6DsOdDZ.gif

     

     

    이미지 조건들의 용어를 보면 체크와 서치 또는 매치로 구분할 수 있습니다. 이미지 조건의 이름이 체크는 픽셀이나 이미지의 위치도 동일한곳을 비교한다는 뜻입니다. 서치나 매치는 윈도우 화면에서 픽셀 또는 이미지를 찾는다는 뜻이죠. 당연한말이지만~ 좀 더 쉽게 예를 들어보면 이렇습니다. 이 사람이 홍길동인지 확인하는건 체크고, 서울에 사는 사람들중에 홍길동을 찾는건 서치입니다. 당연히 체크가 훨씬 효율이 좋고 속도가 빠릅니다. 하지만, 홍길동이라는 사람이 언제 어디에 출현할지는 알수가 없겠죠? 그래서 이미지 서치와 이미지 매치를 많이 사용하게 됩니다^^; 효율보다는 정확도가 우선시 되어야 좋은 매크로를 만들 수 있기 때문입니다.

     

    위는 소프트웨어 신호를 사용하는 활성 방식의 매크로입니다. 비활성으로 확인하기 위해 아래와 같이 핸들을 추가하고, 다시 실행 해보세요.

    q8GZFL1.gif

     

     

    특별히 다른 점은 없어 보입니다. 아래와 같이 그림판을 이동하면서 다시 테스트 해보세요. 창을 여러번 이동하면서 테스트해도 결과는 참(True)으로 나옵니다. 동영상의 마지막에는 [ 핸들 추가 ] 액션을 사용 안함(Uncheck)으로 변경하고 실행 했습니다. 핸들이 없으면 결과 값은 거짓(False)으로 나옵니다. 핸들을 추가하면 비활성 매크로가 됩니다. 다른 매크로들은 비활성으로 매크로를 만들 수 없습니다. 하지만, 엔지엠 매크로는 아주 간단하게 비활성으로 동작하는 매크로를 만들 수 있죠. 활성, 비활성, 하드웨어 방식의 매크로가 궁금하시면 [ 여기 ] 내용을 참고하세요.

    hHzSTn0.gif

     

     

    2. 픽셀 서치

    위에서 잠깐 언급했듯이~ 체크는 동일한 위치에서 픽셀 값이 같은지 비교합니다. 픽셀 서치는 동일한 픽셀 값을 화면에서 찾아줍니다. 아래 동영상을 참고해서 테스트해보세요. 핸들이 없더라도 잘 동작하는걸 확인할 수 있습니다. 이유는 간단합니다. 화면에서 동일한 값을 가지는 픽셀을 찾아주기 때문입니다.

    8xFU3Jc.gif

     

     

    활성 모드와 비활성 모드의 차이점을 알아보려면 아래와 같이 테스트 할 수 있습니다. 활성 모드는 창이 화면에 보여야 동작합니다. 하지만, 비활성 모드는 창이 가려져도 정상적으로 동작합니다. 이는 윈도우 화면을 캡쳐해서 비교하는게 아닌 핸들이 설정된 프로그램을 직접 캡쳐해서 비교하기 때문입니다. 비활성으로 매크로를 만들면 여러개의 창이 가려져 있더라도 독립적으로 동작하는 매크로를 쉽게 만들 수 있습니다. 엔지엠 플레이어는 멀티 핸들 매크로를 쉽게 처리할 수 있는 유용한 기능들이 포함되어 있습니다.

    6jjETDI.gif

     

     

    참고로, 픽셀 서치에서 픽셀 체크와 같이 동작할수도 있는데요. 픽셀을 선택할 때 F1을 눌러야 하죠? 이 때 Ctrl 키와 함께 F1을 누르면 선택한 픽셀의 위치 정보를 찾기 영역으로 자동 설정됩니다. 이렇게하면 픽셀 체크와 동일하게 동작합니다. 서치와 매치 이름을 가진 이미지 조건 액션들은 모두 찾기 영역이 존재합니다. 이는 일정한 영역에서만 출현하는 이미지를 찾을 때 성능면에서 유리합니다. 꼭 전체 화면에서 찾아야 하는건 아니니까요. 큰집에서 바늘 찾는것보다는 작은 방에서 바늘 찾는게 빠르죠.

     

    3. 이미지 체크

    픽셀이 아닌 이미지를 찾을 때 사용하는 액션입니다. 이제 픽셀 체크와 같은 속도를 기대하기 어렵습니다. 이미지 크기에 따라 다르긴 하지만~ 몇배의 성능 차이가 발생할 수 밖에 없습니다. 테스트를 위해 아래와 같은 이미지를 그림판에서 열어줍니다. 그리고, 도구 상자의 조건에서 이미지 체크 액션을 추가해주세요.

    LD1l75h.png

     

     

    아래 동영상을 참고해서 이미지를 캡쳐하고, 저장하세요. 그리고, Ctrl+Alt+F8을 눌러서 실행하면 동일한 위치에 이미지를 비교하고 결과를 알려줍니다. 픽셀 체크는 처리 속도가 0.020 정도 소요되었습니다. 하지만~ 이미지 체크는 0.585가 소요되었습니다. 대략 30배정도 성능 차이가 있습니다. 물론~ 이미지의 전체 모습을 비교하는게 정확도면에서 월등하기 때문에 최종적으로 만들려는 매크로를 잘 분석해서 어떤 액션을 사용할지 결정하는것도 매우 중요한 작업입니다. 첫단추를 잘 끼워야 고생을 안하거든요^^;

    cTymakT.gif

     

     

    위에서 테스트 했던 픽셀 체크 내용과 동일합니다. 이미지를 이동하거나 숨기는데 핸들이 중요한 역할을 한다는거죠. 핸들이 어떤 역할을 하는지 이해하는게 중요합니다. 그래야 매크로를 만들 때 활성 모드로 할지 비활성 모드로 할지 결정할 수 있기 때문입니다. 또 한가지 중요한 점은 실행 속도의 효율입니다. 핸들을 추가하면 윈도우 전체가 아닌 해당 응용 프로그램 안에서만 처리하게 됩니다. 프로그램의 창 크기가 작을수록 효율은 더 좋아집니다. 핸들이 없을 때는 0.585가 걸렸다면 핸들을 추가한 후에는 처리 시간이 0.056 걸렸습니다. 약 10배 가까이 줄어든 것을 확인할 수 있습니다.

    v8GgJA0.gif

     

     

    4. 이미지 서치

    아래 동영상을 참고해서 이미지 체크 액션을 삭제하고, 핸들 추가도 사용 안함(Uncheck)으로 변경하세요. 그리고, 이미지 서치를 추가한 후 NGM.ngi 이미지를 선택해줍니다. 결과를 확인하기 위해 실행 해볼까요? 정상적으로 찾아지는걸 확인할 수 있었지만, 효율은 정말 안좋다는걸 알 수 있습니다. 이미지 서치가 완료되는데까지 약 3초의 시간이 소요되었습니다.

    FWZldrX.gif

     

     

    이번에는 핸들을 추가하고, 실행 후 결과를 확인 해봅니다.  퍼포먼스가 6배 증가했습니다.

    P808UoT.gif

     

     

    비활성 모드로 동작할 수 없는 PC 게임이나 주식 프로그램들은 어떻게 효율을 높여야 할까요? 이부분을 고민하시는 분들이 많습니다. 비활성 모드처럼 창을 가리는건 안되지만 효율은 비활성 모드만큼 올릴 수 있습니다. 그건~ 찾기 영역을 창 크기만큼 설정 해주는 것입니다. 아래와 같이 찾기 영역을 설정하고 실행해보면 비활성 모드와 비슷한 성능을 내는걸 알 수 있습니다.

    rOePwgY.gif

     

     

    5. 이미지 매치

    이미지 서치와 동일한 방법으로 테스트를 진행합니다. 하지만, 이미지 서치보다 성능면에서 더 좋기 때문에 결과만 확인 해보도록 하겠습니다. 아래 동영상을 참고해서 실행 해보세요.

    j8wXZo0.gif

     

     

    이미지 서치와 비교해보면 속도 차이를 느낄 수 있을겁니다. 활성 모드는 이미지 서치보다 약 6배 빠르고 비활성은 5배 빠릅니다. 엔지엠 에디터가 아닌 플레이어를 사용하면 이보다 몇배 더 빠르게 동작합니다. 엔지엠 에디터나 플레이어가 아닌 디자이너 또는 프레임워크로 매크로를 만들면 플레이어보다 더 빠르게 동작하는 커스텀 매크로를 만들수도 있습니다. 스크립트 제작 및 기타 궁금한 사항이 있으면 아래 질문과 답변 게시판에 남겨주세요.

    http://ngmsoftware.com/bbs/board.php?bo_table=knowledge

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.