인식 화면의 정지 여부 (앱동작정지) 를 검출하는 방법
인식 화면을 임시버퍼 인스턴스를 생성하여 스크린캡쳐 후 일정 시간이 지난뒤 비교하여 일치여부를 확인하여 화면이 정지 하였는지 검출하는 코드입니다.
검사간격은 STOP_CHECK_PERIOD_SETTIME 변수에 지정한 시간 마다 (예시 : 5초마다 1회) 실행하며,
멈춤 판단시간 STOP_JUDGE_SV 변수에서 지정한 시간 (예시 : 90초) 이상 일치율이 99% 이상인 상태가 지속되면 앱이 멈춘것으로 판단합니다.
앱의 멈춤 검출시 앱의 재실행 동작을 한다던지, 별도 메신저로 알람을 울린다던지 하는 식의 응용을 하시면 좋겠습니다.
- 사용된 이미지맥스의 내장함수 -
screen = NewBits(int width, int height) : 인수에서 지정한 폭(w), 높이(h) 사이즈의 이미지가 저장될수 있는 인스턴스를 생성하여 리턴합니다.
CaptureScreen(temp, roi) : 생성된 인스턴스 영역에 roi = {int x, int y, int width, int height} 로 지정한 이미지를 저장합니다.
acc, fx, fy = BitsSearch({bits = temp, w = int width, h = int height}, roi) : 인스턴스에 저장된 이미지와 인수에서 지정한 폭(w)과 높이(h) 만큼을 현재 화면의 roi로 지정한 영역과 비교하여 유사도(acc), 시작좌표(fx, fy) 를 리턴합니다.
이미지맥스의 내장 함수는 아래 링크에서 다시 한번 더 확인해 주시면 좋습니다.
https://cafe.naver.com/imagemax/302
- 사용된 사용자정의 함수 -
setClock() / getClock() : 특정 시간의 시스템 클럭을 저장(setClock)후 저장시점으로 부터 경과한 시간을 취득(getClock)해 불러옵니다.
2021.05.12 - [이미지맥스, lua/루아 lua] - [lua] 루아에서 시간 경과 확인 함수 getClock() setClock()
이제 앱이 갑자기 멈춰도 곤란하지 않습니다.
원문) 인식 화면의 정지 여부 (앱동작정지) 를 검출하는 방법
출처) https://cafe.naver.com/imagemax/1644