본문 바로가기
이미지맥스 그리고 루아(lua)/[응용] 보다 효율적인 사용법

[이미지맥스] 내장함수 GetImageROI()를 활용하여 인식화면의 사이즈, 모니터의 해상도를 확인하는 방법

by 위치결정 2022. 3. 18.
반응형

화면의 해상도에 맞추어 이미지를 가변 하고 싶으셨나요? 그런데 이미지맥스로는 해상도를 알수가 없으셨다고요?

이제 그런 고민을 하지 않으셔도 됩니다. 이미지맥스에서도 스크린의 해상도를 알수 있습니다.

 

1. 이미지를 생성하고 인식범위를 '전체' 로 설정하기

우선 아무 1픽셀 이상의 이미지를 생성합니다. 그리고 인식범위를 '전체'로 설정합니다.

인식범위에 '전체' 라고 직접 키보드로 작성하여도되고, 혹은 ROI 버튼을 눌른후 Ctrl + A 버튼을 눌러 스크린이나 인식화면 전체를 ROI 영역으로 설정합니다.

 

2. ROI 취득함수(GetImageROI) 를 이용하여 ROI가 전체인 이미지의 인식범위를 취득하기

screen = GetImageROI('screen')
print(screen.w, screen.h)

--> screen = {x, y, w, y}

스크립트를 작성하여 GetImageROI() 함수를 이용하면 이미지의 ROI범위를 테이블 형태로 반환받을수있습니다.

반환값 = { x=시작좌표, y=시작좌표, w=폭, y=높이} 의 형태로 반환됩니다.

 

우리는 여기서 폭과 높이만 활용하면되는데, w, h의 키를 가진 형태로 저장되기 때문에 변수에 저장하여 변수.w, 변수.h 형태로 활용할수 있습니다.

 

 

3. 활용

-- 활용법1. 해상도에 따라 사용할 이미지 파일을 교체하기
screen = GetImageROI('screen')
print(screen.w, screen.h)

if screen.w == 1920 and screen.h == 1080 then
    img = 'imagefile_1920'
elseif screen.w == 2560 and screen.h == 1440 then
    img = 'imagefile_2560'
end

ret, acc, ix, iy, sx, sy = ImageSearch(img)


-- 활용법2. 해상도에 따라 활성화할 이미지를 변경하기
screen = GetImageROI('screen')
print(screen.w, screen.h)

if screen.w == 1920 and screen.h == 1080 then
    EnableImage(true, '1920')
elseif screen.w == 2560 and screen.h == 1440 then
    EnableImage(true, '2560')
end

 

이제 누울 자리는 알고 누울 수 있습니다.

반응형

댓글