본문 바로가기
반응형

이미지맥스 그리고 루아(lua)/[응용] 보다 효율적인 사용법7

[이미지맥스] 숫자에 콤마나 소수점, 슬래쉬가 있을때 OCR 정확도를 높히는 방법 이미지맥스는 OCR을 이용해 문자를 인식하는 기능을 내장하고있습니다. 설정만 잘해주면 유용하게 써먹을수 있지만 어느정도 한계도 존재합니다. 이번에는 숫자사이에 특수문자(콤마, 소수점, 슬래쉬) 등이 있을 경우 대처 할수있는 방법을 알아봅니다. 1. 소수점이 있는 경우 다음과 같은 숫자를 OCR을 이용하여 읽어오고자 합니다. 평소에 하듯이 숫자를 OCR 영역으로 지정하여 읽어보니 소숫점을 인식 못하고 100011 로 인식해버리는군요. 이로 인해 원래 숫자보다 너무 큰 숫자가 되어버렸습니다. 이런경우 어떻게 해야 좋을지 고민해봅니다. [방법1] 특수문자를 인식하기위해 한글, 영문을 함께 체크한다. 숫자만 체크할 경우 콤마(,), 소숫점(.), 슬래쉬(/) 등을 인식할수 없습니다. 대부분의 경우는 한글, 영문.. 2022. 4. 27.
[이미지맥스] 인식 화면의 영역을 지정하여 변화율 비교하기 (객체지향) -- 스크린 영역 클래스 생성 screen = {} function screen:new(x0, y0, x1, y1) -- 인스턴스 생성, 메타테이블, __index self 참조지정 local instance = setmetatable({}, self) self.__index = self -- 스크린좌표 파라미터 기본값 정의 (기본값:(0,0),(1280,720)) local x0 = x0 or 0 local y0 = y0 or 0 local x1 = x1 or 1280 local y1 = y1 or 720 -- 스크린 ROI 설정 instance.x = x0 instance.y = y0 instance.w = x1 - x0 instance.h = y1 - y0 instance.roi = {instanc.. 2022. 3. 26.
[이미지맥스] 내장함수 GetImageROI()를 활용하여 인식화면의 사이즈, 모니터의 해상도를 확인하는 방법 화면의 해상도에 맞추어 이미지를 가변 하고 싶으셨나요? 그런데 이미지맥스로는 해상도를 알수가 없으셨다고요? 이제 그런 고민을 하지 않으셔도 됩니다. 이미지맥스에서도 스크린의 해상도를 알수 있습니다. 1. 이미지를 생성하고 인식범위를 '전체' 로 설정하기 우선 아무 1픽셀 이상의 이미지를 생성합니다. 그리고 인식범위를 '전체'로 설정합니다. 인식범위에 '전체' 라고 직접 키보드로 작성하여도되고, 혹은 ROI 버튼을 눌른후 Ctrl + A 버튼을 눌러 스크린이나 인식화면 전체를 ROI 영역으로 설정합니다. 2. ROI 취득함수(GetImageROI) 를 이용하여 ROI가 전체인 이미지의 인식범위를 취득하기 screen = GetImageROI('screen') print(screen.w, screen.h) .. 2022. 3. 18.
[이미지맥스] 지정영역을 자동으로 분할한 ROI 테이블 만들기 makeRoi() -- ROI 생성 함수 : 영역 설정(sx, sy, ex, ey), 이미지 ROI 사이즈(img_w, img_y) function makeRoi(_sx, _sy, _ex, _ey, _img_w, _img_h) print('==================================================') print('>> ROI를 생성합니다.') -- 서치할 영역의 폭(x), 높이(h) 계산 local width = _ex - _sx local height = _ey - _sy print('width : '..width, 'height : '..height) -- 서치할 영역 분할 갯수 (서치 영역의 폭 / 검색 거리 간격) local width_split = (width / _img_w) -.. 2022. 2. 19.
[이미지맥스] 인식 화면의 정지 여부 (앱동작정지) 를 검출하는 방법 -- 시스템 클럭을 이용한 딜레이 설정 함수 function setClock() return os.clock() end function getClock(_clock) if _clock ~= nil then return os.clock() - _clock else print('getClock() ERROR : _clock is null') end end -- print('========================================') -- print('화면 정지 비교 프로그램 ver.220509') -- print('========================================') -- 앱 동작 정지 감시 유사도, 판단 시간, 검사 간격 설정 STOP_JUDGE_ACC = 98 --.. 2021. 7. 10.
[이미지맥스] 앱플레이어 hwnd 윈도우핸들 취득 방법 FindWindow(), FindWindowEx(), PostMessage(), SendMessage(), WM_MESSAGE -- 블루스택5 윈도우 핸들 취득 hwnd1 = FindWindow('Qt5154QWindowOwnDCIcon', 'BlueStacks') hwnd2 = FindWindowEx(hwnd1, '', 'plrNativeInputWindowClass', 'plrNativeInputWindow') hwnd3 = FindWindowEx(hwnd2, '', 'BlueStacksApp', '_ctl.Window') -- LD앱플레이어 윈도우 핸들 취득 hwnd1 = FindWindow('LDPlayerMainFrame', caption) hwnd2 = FindWindowEx(hwnd1, '', 'RenderWindow', 'TheRender') hwnd3 = FindWindowEx(hwnd2, '', 'subWin'.. 2021. 7. 10.
[이미지맥스] 이미지 검색 실패시 드래그 혹은 휠다운 등 추가 행동 하기 이미지맥스를 이용하여 자동화툴을 제작하면서 특정 영역에서 이미지를 검색하고 찾지 못한 경우 드래그를 하거나 휠동작을 하여 스크롤을 내려 추가적으로 재차 이미지검색을 해야 할 경우가 있습니다. 반복문을 이용하여 해당 동작을 쉽게 구현할 수 있습니다. 우선 ImageSearch() 함수를 통해 이미지를 검색하여 return 값이 0:검색실패인 경우와 1:검색성공인 경우의 동작 코드를 작성합니다. if ImageSearch('find_image') == 1 then print('이미지를 찾았습니다') else print('이미지를 찾지 못하였습니다.') end --> 이미지를 찾은경우 '이미지를 찾았습니다' 문자열을 출력 --> 이미지를 찾지 못한 경우 '이미지를 찾지 못하였습니다' 문자열을 출력 이 동작에 .. 2021. 4. 9.
반응형