NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 이미지 멀티 조건 성능 비교 및 테스트.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로에는 스크립트 제작 편의를 위해 이미지 조건을 한번에 멀티로 처리할 수 있는 액션이 포함되어 있습니다. 그리고, 엔터프라이즈 등급의 에디터를 사용하는 경우 좀 더 퍼포먼스를 올리기 위해 비동기 옵션이 추가되어 있는데요. 어떤 경우에 사용할 수 있는지 알아보도록 하겠습니다. 테스트를 위해 엔지엠 매크로 에디터를 실행하고, 새로운 스크립트를 추가하세요.

    cnOuw3h.gif

     

     

    1. 이미지 멀치 체크

    도구 상자에서 [ 이미지 멀티 체크 ] 액션을 추가하세요.

    YvjiXC3.png

     

     

    그림판에 아래와 같은 이미지를 2개 추가 해두었습니다.

    DWhckkv.png

     

     

    각각의 이미지를 캡쳐해서 이미지 목록에 추가 해줍니다.

    9jNx7mu.png

     

     

    매크로를 실행하면 캡쳐한 이미지가 모두 그림판에 있기 때문에 각각의 이미지가 True이고, 최종 결과도 True로 표시됩니다.

    rHm3BSH.png

     

     

    그림판에 없는 이미지를 하나 더 추가하고 실행하면 최종 결과는 False가 됩니다. 못찾은 이미지도 같이 False로 표시됩니다.

    5TJ9YZY.png

     

     

    비교 조건을 Or로 변경하면 3개중에 하나만 있어도 True로 처리됩니다.

    oTQnCIE.png

     

     

    비교 조건을 Custom으로 변경하고, 비교 조건 수를 1로 변경하세요. 그리고 다시 실행하면 찾은 이미지의 갯수가 1보다 크면 참이 됩니다. Or 조건은 하나만 같아도 True입니다.

    PEpijTN.png

     

     

    이미지 체크는 이미지 서치, 이미지 매치와 다르게 화면에서 찾는게 아닙니다. 이미지 체크는 동일한 위치의 이미지를 비교하기 때문에 이미지 파일로는 몇가지 기능들을 사용할 수 있습니다. 이번에는 이미지 선택으로 이미지를 추가하세요.

    zH7dcB0.png

     

     

    이미지 선택의 경우 png, jpg, bmp와 같은 일반적인 이미지라서 위치 값을 알 수 없습니다. 그래서, 매크로를 실행하면 무조건 False가 됩니다. 이미지 체크에서 이미지 파일을 선택해서 비교하려면 비교할 이미지도 같이 추가 해줘야 합니다.

    MBjv3TG.png

     

     

    이제는 그림판 없어도 비교가 가능합니다. 소스 이미지와 대상 이미지 모두 동일하기 때문입니다. 소스 이미지를 2개 추가하고 대상 이미지는 1개라서 아래와 같은 결과가 나옵니다.

    aatka31.png

     

     

    찾은 각각의 이미지를 클릭 해볼까요? 이미지 선택은 이미지의 좌표가 없기 때문에 마우스 클릭을 사용할 수 없습니다. 따라서, 이미지 이름으로 다시 변경하세요.

    9jNx7mu.png

     

     

    이미지 목록에서 각각의 이미지에 마우스 액션을 추가할 수 있습니다.

    iBSF7NC.png

     

     

    이미지 개별적으로 클릭을 설정할 수 있고, 전체 설정도 가능합니다. 각각의 이미지에서 마우스 액션을 다시 False로 모두 바꾸고 아래와 같이 다중 처리 방식을 Each로 변경하세요.

    21qHv3U.png

     

     

    추가된 모든 이미지를 클릭하게 됩니다. 만약, 찾은 모든 이미지의 중앙을 클릭하려면 Combine으로 변경하시면 됩니다. 추가적으로 Each로 설정한 경우에는 서브 다중 처리 방식으로 추가적인 동작을 설정할 수 있습니다. 서브 다중 처리 방식은 아래와 같은 옵션을 가지고 있습니다.

    • FarSort: 모든 이미지의 중앙에서 먼 이미지
    • NearSort: 모든 이미지의 중앙에서 가까운 이미지
    • FarFirst: 모든 이미지의 중앙에서 먼 첫번째 이미지
    • NearFirst: 모든 이미지의 중앙에서 가까운 첫번째 이미지
    • None (Default): 모든 이미지

    68O8TdO.png

     

     

    이미지의 중앙이란 모든 이미지를 합쳐서 하나의 이미지인것처럼 인식한 후 중앙을 말합니다. 말이 좀 어려운데요. Combine으로 실행하면 찾은 모든 이미지의 위치를 사각형으로 감싸고 그 ①중앙입니다. 따라서, Each의 경우 모든 이미지 위치 정보에서 전체 하나의 이미지 중앙으로부터 거리를 계산해서 클릭할 수 있습니다. 많은 이미지를 비교 분석할 때 거리에 따라 중앙에서 먼 이미지가 있을 수 있고, 가까운 이미지가 있을 수 있습니다.

    0vQr1XC.png

     

     

    이번에는 이미지 멀티 체크 속성에서 엔터프라이즈 기능인 비동기True로 변경하고 테스트 해보세요. 동기와 테스트는 동일한데요. 이미지 선택의 경우 캡쳐한 위치의 좌표가 없기 때문에 무조건 대상 이미지를 추가해줘야 합니다. 이렇게 설정하는 경우에는 비교 조건을 Or로 설정해야 합니다. 여러개의 이미지 중 대상 이미지가 같은지만 판단해야 하기 때문입니다.

    MBjv3TG.png

     

     

    이미지 멀티 체크와 이미지 체크는 찾을 이미지의 위치가 이미 정해져 있기 때문에 다양한 조건에서 사용하기에는 제약이 많습니다. 대신 속도 측면에서는 가장 빠릅니다.

     

    2. 이미지 멀티 서치

    추가되어 있는 이미지 멀티 체크 액션을 삭제하고, 도구 상자에서 이미지 멀티 서치 액션을 추가하세요.

    bh0bnXQ.png

     

     

    그림판에 이미지가 2개 있고, 찾아야 하는 이미지는 200개를 비교해보도록 하겠습니다. 당연히 AND 조건으로 실행하면 무조건 False결과가 나옵니다. 그래서, 테스트는 Or 조건으로만 진행하도록 하겠습니다. 그림판에서 캡쳐한 2개뿐만 아니라 다른 이미지들도 캡쳐해서 추가하세요. 제가 가지고 있는 테스트용 이미지들도 모두 추가했습니다.

    s3jnwrV.png

     

     

    윈도우 전체 화면에서 이미지를 찾기 때문에 생각보다 속도가 많이 느립니다. 좀 더 빠르게 할 수 있는 방법이 여러가지가 있지만 일단은 기본으로 실행할께요. 비교 조건을 And로 실행 해보세요. 약 5초 정도의 시간이 소요되었습니다. 1번 이미지가 화면에 존재하지 않기 때문에 바로 False가 되었습니다.

    O1z6njP.png

     

     

    비교 조건을 Or로 변경하고 다시 실행 해보세요. 생각보다 시간이 많이 걸렸네요.

    u85NoqA.png

     

     

    비동기로 실행하면 훨씬 더 오래 걸립니다. 2분 3초가 걸렸네요. Or 조건 비동기로 실행하면 효율이 많이 떨어집니다. 비동기는 병렬 실행 옵션입니다. 예들 들어 10개의 이미지에서 5번 이미지가 있다고 생각 해보세요. 순차 실행시 1, 2, 3, 4, 5에서 멈춥니다. 하지만, 비동기는 무작위로 실행되기 때문에 약간의 운도 작용합니다. 5를 처음 실행할수도 있고 마지막으로 실행할수도 있으니까요. 또 한가지 느린 이유는 1번 이미지를 처리할동안 다른 이미지들이 동시에 실행됩니다. 그렇기 때문에 5번이 처음 실행되었더라도 2, 3, 4, 6, 7, 8, 9, 10번이 모두 실행중일 수 있습니다.

    CWHmqyv.png

     

     

    좀 더 작은 원본 이미지를 추가하고 다시 실행 해볼께요. 이미지가 작기 때문에 훨씬 더 빠른 속도를 보여줍니다.

    zUzlbsP.png

     

     

    비동기 옵션을 사용하면 약 5초정도 시간이 소요됩니다. 비동기에서는 속도가 랜덤하기 때문에 가능하면 동기 모드로 사용하는게 좋습니다.

    Tbhnep4.png

     

     

    이번에는 이미지 멀티 매치로 이미지 멀티 서치와 동일하게 테스트 해보세요.

     

    3. 이미지 멀티 매치

    이미지 멀티 매치는 이미지 서치보다 속도가 빠를수도 있고, 느릴수도 있습니다. 이미지 분석 알고리즘이 다르다보니 상황에 따라서 속도는 다릅니다.

    qaJQZGj.png

     

     

    200개의 이미지를 png 파일로 테스트 해봤습니다.

    mBUU2ez.png

     

     

    이번에는 비동기 옵션을 True로 변경하고 다시 테스트 해보세요. 로그가 올라오는 속도를 보면 아시겠지만 멀티로 처리하는게 속도는 빠르지만 전체 처리 결과는 느립니다. 위에서도 설명했지만, 이런 결과가 나오는 이유는 참인 상태라도 이미 처리기에 등록된 거짓 이미지들이 돌아가고 있기 때문입니다.

    tRwE5oU.png

     

     

    이번에는 엔지엠 매크로 이미지(ngi)로 테스트를 해봅시다. 등록된 이미지를 모두 삭제하고, 이미지 이름으로 모두 추가하세요. 약 2초정도 걸립니다.

    UWNwAP3.png

     

     

    비동기로 바꾸고 다시 실행 해보세요. 이미지 매치에서는 동기보다 비동기가 더 빠르게 처리됩니다.

    w7MtlaR.png

     

     

    내용이 길어져서 마우스 동작 및 옵션에 대한 테스트는 이미지 멀티 체크와 같이 직접 테스트 해보세요. 위에서 테스트한 동작 속도는 컴퓨터 성능에 따라서 차이가 있을 수 있습니다. 결국은 CPU 성능에 따라서 결과가 달라지는 부분이니까요. 이미지 파일(png, jpg, gif, bmp)과 엔지엠 매크로 이미지는 정보량이 다릅니다. 컴퓨터 성능도 속도에 영향을 주지만 용량이 작은 이미지 그리고, 핸들이나 찾기 영역등등... 다양한 요소들이 성능에 영향을 줍니다. 자신의 환경에 맞게 사용하는게 중요한 포인트입니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.