본문 바로가기
이미지맥스 그리고 루아(lua)/[기본] 스크립트 내장함수

[이미지맥스] 내장함수 멀티이미지 검색 MultiImage()

by 위치결정 2021. 4. 5.
반응형

이미지맥스는 루아 스크립트 언어를 사용하여 코딩이 가능합니다.

기본적으로 제공하는 기능을 활용하여도 괜찮지만, 코드를 통해 좀더 다양한 기능을 구현할수 있다는 것이 장점입니다.

루아의 기본적인 함수는 물론, 이미지맥스 에서 제공하는 내장함수 라이브러리도 있으니 이를 활용하여 매크로 프로그램을 설계하면 좋을것입니다.

이미지맥스에서 제공하는 함수 라이브러리는 공식카페(cafe.naver.com/imagemax/302)에서 확인하실수 있습니다.

 

한번에 여러 이미지를 동시에 검색 할때 활용 할수 있는 함수는 멀티이미지검색 MultiImage() 함수가 있습니다.

여러 이미지를 and, or 논리식을 세워 검색하여 결과를 0 또는 1 정수로 받을수 있는 함수입니다.

MultiImage('MULTI_IMAGE_STRING')
-- return : 0 or 1

 

ImageSearch()함수를 여러번 활용하여도 동일한 결과를 얻을수 있습니다.

하지만 이미지를 하나씩 검색하여 결과를 얻기때문에 로직이 좀더 길어지게됩니다.

-- 이미지 2개 or 조건으로 검색 (둘중 하나라도 검출시 결과 출력)
local ret1 = ImageSearch('image1')
local ret2 = ImageSearch('image2')
if ret1 == 1 or ret2 == 1 then
    print('이미지1 혹은 이미지2 둘중 하나를 발견하였습니다.')
end

-- 이미지 2개를 and 조건으로 검색 (둘 모두 검색해야 결과 출력)
local ret1 = ImageSearch('image1')
local ret2 = ImageSearch('image2')
if ret1 == 1 and ret2 == 1 then
    print('이미지1과 이미지2를 모두 발견하였습니다.')
end

-- 1번, 2번이미지가 모두 발견되거나, 3번이미지가 있으면 결과 출력
local ret1 = ImageSearch('image1')
local ret2 = ImageSearch('image2')
local ret3 = ImageSearch('image3')
if (ret1 == 1 and ret2 == 1) or ret3 == 1 then
    print('이미지1과 이미지2를 발견 하였거나, 이미지3을 발견하였습니다.')
end

 

이런 경우 멀티이미지 검색 함수를 사용하면 코드의 길이를 줄여줄수 있는 좋은 방법입니다.

멀티이미지검색은 인수를 모두 따옴표를 붙여 (' ' or " ") 스트링 형태로 작성합니다.

검색할 이미지이름 사이에 and 조건검색은 &, or 조건 검색은 | 로 작성합니다.

-- 이미지 2개 or 조건으로 검색 (둘중 하나라도 검출시 결과 출력)
local ret = MultiImage('image1|image2')
if ret == 1 then
    print('이미지1 혹은 이미지2 둘중 하나를 발견하였습니다')
end

-- 이미지 2개를 and 조건으로 검색 (둘 모두 검색해야 결과 출력)
local ret = MultiImage('image1&image2')
if ret == 1 then
    print('이미지1과 이미지2 모두 발견하였습니다')
end

-- 1번, 2번이미지가 모두 발견되거나, 3번이미지가 있으면 결과 출력
local ret = MultiImage('(image1&image2)|image3')
if ret == 1 then
    print('이미지1과 이미지2를 발견 하였거나, 이미지3을 발견하였습니다.')
end

 

보다 간결합니다.

반응형

댓글