NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 이미지 서치 매크로 테스트.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 이미지 체크, 이미지 서치, 이미지 매치 및 이미지와 관련된 조건들의 동작 테스트입니다. 활성 모드(하드웨어, 기계식)와 비활성 모드(핸들, ADB)을 순차적으로 하나씩 테스트하면서 매크로를 어떻게 제작해야 하는지 알아보겠습니다. 우선, 아래 팔레트 이미지를 바탕화면에 저장하세요.

    Aj78dRp.png

     

     

    활성 이미지 매크로

    1. 이미지 체크

    [ 이미지 체크 ]는 찾기 영역이 고정된 상태로 이미지를 비교합니다. 바탕화면에 저장된 팔래트 이미지를 이미지 선택 속성에서 선택하세요.

    ypFTSpT.png

     

     

    실제로 이미지를 잘 찾았는지 시각적으로 확인하기 위해 마우스 동작 속성에 Move를 설정 했습니다.

    7w3NDng.png

     

     

    옵션에 마우스 이펙트 보기도 켜주세요.

    NzHBD9c.png

     

     

    매크로를 실행하면 하단의 아웃풋에서 아래와 같은 에러를 확인할 수 있습니다.

    Error
    ==================================================================================
    이미지 체크 액션에서는 좌표계가 없는 일반 이미지(png, bmp...)를 사용할 수 없습니다.
    ----------------------------------------------------------------------------------
    

    GB3ZrxX.png

     

     

    이미지 체크는 서치가 아니기 때문에 자신이 어디에 있었는지 알고 있어야 합니다. 이미지에 자신의 위치를 저장하려면 ngi 이미지 포멧을 사용해야 합니다. ngi 이미지는 엔지엠 매크로에서 사용하는 별도의 이미지 포멧입니다. 아래와 같이 이미지를 캡쳐하고, 기존에 추가한 이미지 선택 속성은 지우세요.

     

     

    매크로를 실행하면 그림판에서 팔레트 이미지를 찾아서 마우스가 이동합니다. 옵션에서 마우스 이펙트를 켜두었기 때문에 쉽게 확인할 수 있습니다.

     

     

    2. 이미지 서치

    [ 이미지 서치 ]는 이미지 체크와 다르게 화면에서 원하는 이미지를 찾아서 클릭할 수 있습니다. 바탕화면의 팔레트 이미지를 선택하세요. 그리고, 마우스 동작Move로 선택합니다.

    C1tqr6u.png

     

     

    매크로를 실행하면 이미지 체크와 동일한 결과를 확인할 수 있습니다. 하지만, 이미지 체크와 다르게 고정 위치가 아니기 때문에 창을 이동해도 정상적으로 동작합니다.

     

     

    이번에는 찾기 영역을 설정해보세요. 기본적으로 이미지 서치는 윈도우 화면 전체를 스캔합니다. 찾기 영역을 설정하면 스캔할 범위가 줄어들기 때문에 퍼포먼스가 증가합니다. 또한, 원하지 않는 위치에서 이미지가 출현하는 문제를 방지할 수 있습니다. 윈도우 화면에 같은 이미지가 많아도 찾기 영역을 설정하면 특정 위치에서만 이미지가 출현했는지 체크할 수 있습니다.

     

     

    3. 이미지 매치

    [ 이미지 매치 ]는 이미지 매크로 프로그램에서 가장 대중적으로 많이 사용되는 이미지 검출 알고리즘입니다. 엔지엠 매크로도 OpenCV를 이용하고 있습니다. 이미지 서치는 픽셀 정보를 기반으로 하나씩 비교하여 같은 이미지인지 판단합니다. 그래서, 이미지 매치보다 타이트(Tight)하게 이미지를 검사할 수 있습니다. 반대로 이미지 매치는 루즈(Loose)하게 검사하므로 효율이 좋다고 할 수 있습니다. 테스트 방식은 이미지 서치와 동일합니다.

     

     

    이미지를 새로 캡쳐하고 매크로를 다시 실행 해보세요. 그리고, 찾기 영역을 추가한 후 잘 동작하는지 확인합니다. 이미지 위치를 찾기 영역 밖으로 이동시키고 다시 실행 해보세요.

     

     

    비활성 이미지 매크로

    1. 이미지 체크

    비활성 매크로를 만들려면 기본적으로 아래 2가지를 먼저 실행해야 합니다. [ 핸들 추가 ]와 [ 이동 ] 액션을 사용해서 매크로가 동작할 프로그램을 모니터 좌측 상단에 위치시킵니다. 비활성은 매크로가 실행중에도 마우스와 키보드를 사용할 수 있습니다. 그리고, 다클라 매크로를 안정적으로 운영할 수 있습니다. 이 부분이 가장 큰 메리트라고 할 수 있습니다. 대신에 몇가지 제약이 존재합니다. 하나의 스크립트로 여러개의 클라이언트에서 매크로를 실행해야 하기 때문에 내부에서 좌표들을 자동으로 처리할 수 있어야 합니다. 아래와 같이 매인창이 되는 클라이언트(그림판 프로그램)가 모니터의 좌측 상단에 위치하는게 좋습니다. 꼭, 좌측 상단에 있을 필요는 없지만 디버그나 문제를 파악할 때 좌표 값을 보고 역추적하기가 용이합니다.

    vshttyo.png

     

     

    창을 윈도우 좌상단 0, 0으로 이동한 후 작업을 시작하세요. 이미지 체크는 비활성도 활성과 동일하게 파일(png, jpg)을 사용할 수 없습니다. 그림판에서 팔레트 이미지를 새롭게 캡쳐한 후 저장해줍니다. 항상 창을 먼저 정렬해놓고, 이미지를 캡쳐하고 찾기 영역을 설정해야 합니다. 이미지 체크는 찾기 영역이 없기 때문에 캡쳐만 하면 됩니다.

    sHe4idk.png

     

     

    매크로를 실행하면 매크로 작업중인 매인창에서 정상 동작합니다. 매크로 제작이 완료되면 이 스크립트를 복사한 후 핸들만 다른 창으로 변경하면 동일하게 동작합니다. 아래 동영상에서는 스크립트를 복사하진 않았지만 핸들을 변경해서 우측의 두번째 그림판에서 이미지를 찾아서 클릭하게 했습니다.

     

     

    스크립트가 완료된 후에는 창이 이동해도 문제가 없습니다. 아래 동영상처럼 이동 액션의 체크를 해제하고 매크로를 실행 해보세요.

     

     

    2. 이미지 서치

    이미지 체크 액션을 삭제하고, 이미지 서치 액션을 스크립트에 추가하세요. 이미지 체크에서 팔레트 이미지를 캡쳐했기 때문에 이미지 서치에서는 안해도 됩니다. 원래 위치를 기억하고 있기 때문입니다. 이미지 서치에서 팔레트 이미지를 선택하세요. 이 예제에서는 New Image로 저장되어 있습니다.

     

     

    다시 매크로를 실행하면 창 위치가 좌상단으로 이동하고, 이미지도 정상적으로 찾아집니다. 핸들을 두번째 그림판으로 변경해도 동일하게 잘 찾습니다.

     

     

    찾기 영역을 설정합니다. 여기서 주의할점이 있습니다. 찾기 영역은 이미지를 캡쳐한 당시의 상태와 동일해야 합니다. 그림판 1번에서 이미지를 캡쳐했기 때문에 동일하게 그림판 1번에서 찾기 영역을 설정해야 합니다. 그리고, 창 위치도 이미지 캡쳐 당시와 동일해야 합니다. 만약, 이미지 캡쳐 당시의 창 위치를 모르겠다면 아래와 같이 이미지 편집기에서 확인한 후 이동 액션으로 위치를 맞추면 됩니다.

    jHMBxJd.png

     

     

    찾기 영역을 설정한 후 핸들을 변경해가면서 매크로를 실행 해보세요. 정상적으로 이미지를 찾아줍니다.

     

     

    찾기 영역을 설정한 후 창을 이동해도 결과는 동일합니다.

     

     

    3. 이미지 매치

    이미지 매치는 이미지 서치와 대부분의 코드를 공유하고 있습니다. 이미지를 검출하는 알고리즘만 다를뿐 좌표 계산이나 위치 계산은 동일한 로직을 사용합니다. 아래 동영상을 참고해서 지금까지 해왔던 테스트를 동일하게 해보세요. 이미지 서치와 같은 결과를 확인할 수 있습니다.

     

     

    이와같이 매인 프로그램에서 매크롤를 완성하면 이미지 선택으로 png나 jpg와 같은 이미지를 사용해도 정상적으로 좌표도 계산이 되고, 이미지도 잘 찾아줍니다. 참고로, png는 무손실 압축 방식이라서 문제가 안되지만, jpg는 손실 압축 방식이라서 파일을 읽을 때마다 픽셀 정보가 유실됩니다. 그러므로, 나중을 위한다면 jpg나 gif와 같은 이미지는 사용하지 않는게 좋습니다.

     

     

    마지막으로 찾기 영역을 선택하고, 보기 > 디버그를 체크한 후 하단에서 이미지 탭을 선택하면 아래 그림과 같이 대상 이미지를 확인할 수 있습니다.

    HBmiq97.png

     

     

    대상 이미지가 전체 화면인 경우에는 속성에서 이미지를 저장한 후 확인할 수 있습니다.

    Hx7ay6S.png

     

     

    이미지 매치와 이미지 서치에는 배경이 변화하는 반투명 이미지를 찾을 수 있는 기능이 포함되어 있습니다. 일반적인 환경에서 반투명 이미지를 찾을일은 없을겁니다. 하지만, 3D 게임이나 동영상 또는 그래픽 작업 환경에서 필요한 기능입니다. 자세한 내용은 아래 글을 참고 해보세요.

    [ 배경이 있는 반투명 이미지를 찾아서 클릭하는 방법 ]

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.