오토핫키 커뮤니티

2021.09.21 10:53

오토핫키 픽셀서치

조회 수 1139 추천 0 댓글 3

픽셀서치란?

픽셀(Pixel) 이란건 다들 아시다시피 컴퓨터의 한 점을 의미합니다.

픽셀서치(PixelSearch)는 말 그대로 한 픽셀의 색을 검사해

일정 색 범위 안에 들어가는 픽셀을 찾아내는 명령어입니다.


이미지서치와 굉장히 유사하기때문에(점 1개인 이미지서치일려나요? ㅎㅎㅎ...)

이미지 서치와 유사하게 구현됩니다.


Pixelsearch,xx,yy,X1,Y1,X2,Y2,0x색상 코드,오차범위,Fast RGB


X1, Y2 과 X2, Y2는 이미지서치때처럼 시작 X1, Y1좌표와 끝 X2, Y2좌표를 의미하고

색상 코드의 경우 색의 RGB값을 의미합니다. 이는 PixelGetColor라는 함수나, Spy를 통해 알 수 있습니다


오차범위의 경우 이미지서치와 마찬가지로 얼마나 다른 색상까지를 인식해주냐의 범위입니다.


99A020345CB495832A


저 부분이 바로 Color 부분입니다.

사진의 경우 CCECFF 이니 0xCCECFF 로 쓰면 되겠네요.


뒤의 Fast와 RGB의 경우는 추후에 설명하도록 하겠습니다.



99DCAB3B5CB493F310


저같은 경우 바탕화면에 있는 크롬 아이콘을 픽셀서치 해보겠습니다.


9908C5395CB4955130


Spy 프로그램을 켜고, 크롬의 빨간색 부분에 마우스 포인터를 올리니

Color가 DD4F42라고 알려줍니다.

이를 기억해 줍시다. 또한 저같은 경우 바탕화면이므로, 서치할 좌표(마우스 위치) 또한 알아두겠습니다.


990F763B5CB493F33A


픽셀서치 값을 입력해주고, 범위 또한 입력해 코드를 짠 후 테스트 해보겠습니다.



991977395CB4940805


위와 같이 정상적으로 빠르게 인식하는것을 알 수 있습니다.



99336E3B5CB493F601


픽셀 서치 공식 문서를 보면, ColorID 부분이 원래는 RGB(Red-Green-Blue) 순서가 아닌 BGR(Blue-Green-Red) 순서로 설정을 해야한다고 써져 있습니다.


하지만, 위의 Spy로 보면 색상이 자동으로 RGB 순서로 캡처되므로, 뒤의 Mode 에 설정을 해줘

강제로 RGB 순서로 설정을 하도록 해준겁니다.


참고로 PixelGetColor를 통해서 색상값을 가져오는 경우에는

PixelGetColor의 경우 디폴트 설정이 BGR이기 때문에 픽셀서치할시 BGR옵션(즉 RGB를 지운 상태)에서 해야합니다.



다음으로, Fast옵션의 경우에는, 일반 픽셀서치와 다른 알고리즘(가로로 픽셀서치가 하는게 아니라 세로 순서로 픽셀서치하고... 그 외에는 차이를 잘 모르겠네요 ㅎ;;

자세한 것은 해당 사이트를 참고해보시길 바랍니다.

https://autohotkey.com/docs/commands/PixelSearch.htm


솔직히 말하면 픽셀서치의 경우 그다지 명시성이 없고,

공통점이 되는 점이 너무 많을 가능성이 존재하기 때문에 저도 주로 이미지서치를 사용하지, 픽셀서치를 사용하는 편은 아닙니다.


하지만, 빠른 속도를 필요로 하거나 완전한 정밀도를 요구하는 작업이라면 픽셀서치를 고려해보는 것도 나쁘지 않으리라 생각됩니다.

아무쪼록, 유용한 편을 선택하셔서 프로그래밍하시길 바랍니다.

모두 즐거운 추석 보내세용~-~



  • 비듀맨 2022.07.20 20:45

    와...!! 이거 저한테는 진짜 필요하던건데 ㅠㅠㅠㅠㅠ

    이미지서치보다 인식속도 훨씬 빠르네요 정말 감사드립니다

  • mnbmnb 2023.08.24 18:29

    감사합니다 잘쓰겠습니다.

  • 하루하나 2023.10.21 19:02

    좋은 정보 감사합니다


전체 최신 인기글

전체 주간 인기글