원리는 조금 복잡합니다.
1. 동전이라는 이미지 3개가 있습니다.
크기는 모두 1x3이고. 편의상 Gray컬러로 변환된상태입니다.
동전_1.bmp는 좌표별로 색깔이 120 140 190,
동전_2.bmp는 좌표별로 색깔이 120 150 190,
동전_3.bmp는 좌표별로 색깔이 120 160 190, 입니다.
이 동전이미지들을 좌표별로 0,1로 변환을 하는데.
색깔이 145이상이면 1, 아니면 0으로 변환합니다.
그러면 각각
동전_1.bmp는 좌표별로 색깔이 0, 0, 1
동전_2.bmp는 좌표별로 색깔이 0, 1, 1
동전_3.bmp는 좌표별로 색깔이 0, 1, 1 입니다.
이때 txt파일에 각 좌표별 평균값을 저장합니다.
그러면 txt파일에는 0, 0.66, 1 이라는 값들이 저장됩니다.
2. 이제 실제 게임에서 원하는 영역의 좌표의 이미지를 얻었다고 칩시다.
얻은 이미지를 Gray컬러로 변환하니 좌표별 색깔이 150, 170, 200이라 할때,
이 이미지의 색깔을 0, 1로 바꿀때, 똑같이 145이상이면 1, 아니면 0으로 바꿉니다.
그러면 1, 1, 1라는 값이 얻어집니다.
이제
1 에서 얻은 txt파일과 2에서 얻은 이미지값을 비교합니다.
좌표0,0 에서 오차는 |0 - 1| = 1
좌표1,0 에서 오차는 |0.66 - 1| = 0.34
좌표2,0 에서 오차는 |1 - 1| = 0
전체 오차는 1.34이며. 비율로 따진다면 1.34/(1x3) = 0.446쯤 됩니다.
그렇다면 일치율은 1 - 0.446 = 0.554정도가 됩니다.
3. 실제 적용.(ㅇㅅㅁㅇ이라는 게임)
이 게임은 매크로방지를 위한 중간중간 키패드를 입력하는 창이 뜹니다.
문제는 키패드 위치에 따라 이미지 색깔이 조금씩 다릅니다.
하여 위 방식을 그대로 적용하여 평균값 txt파일을 만듭니다.
대충 이렇게됩니다.
이걸 이용해서 스캔합니다.(10개 키패드) 대충 4초정도 걸리는군요..
첫번재 키패드는 6이랑 가장 비슷하다고하네요.
두번재 키패드는 3이 가장 닯았다고 하네요.(5, 6도 일치율이 0.8이상 나오네요.....)
최종 스캔한 결과입니다.
장점은 특징 부분을 찾으려고 애쓰지 않아도된다는 점입니다.
단점은 귀찮은 부분이 좀 많습니다. 이미지를 충분히 확보해야하고, 거기서 값을 추출해야합니다....(물론 변환하는 프로그램을 만들어서 하면됩니다.). 그리고 값이 0.5인 부분에 대해서 감안을 하지 않았습니다. 0.5라는 것은 50%확률로 그 픽셀이 0또는 1이 된다는 뜻이므로 해당 이미지와 무관한 가능성이 높다는 뜻이겠죠..(0 이나 1에 가까울수록 고유한(독립적인) 특징이 되겠죠..)