2017-04-27 139 views
0

PyAutoGUI의 이미지 인식 기능 (pyautogui.locateCenterOnScreen)을 사용하여 봇 프로그램에서 가능한 블록을 멈추려 고 간단한 '확인'버튼을 인식하여 가능한 블록 오류 메시지. 그러나 기능은 때로는 다른 오류 메시지를 스크린 샷으로 표시하고 픽셀 색상을 나란히 비교하여 알기 때문에 작동합니다. 내가 알아 낸 결과는 서로 다른 두 개의 'OK'버튼의 픽셀 색상이 대개 1 씩 꺼져있어 대부분의 시간에 None을 반환하는 이미지 인식 함수를 설명합니다. 색상이 1 또는 2 픽셀 떨어져도 이미지를 인식하고 싶습니다. tolerance 키워드 인수가 있음을 알고 있지만 화면상의 버튼 위치가 변경되어 getpixel 기능을 사용하기가 어려우며 tolerancelocateCenterOnScreen과 함께 사용할 수 없습니다 (필자의 이해를 돕기 위해). 이 문제를 어떻게 극복 할 수 있을지에 대한 제안이 있습니까? 미리 감사드립니다.PyAutoGUI 이미지 인식 - 픽셀 컬러 매칭과 약간의 문제

+0

내 대답의 힌트는 당신에게 문제의 해결책을 제공합니까? 뭔가 아직도 불분명합니까? 대답이 '예'일 경우, 그냥 묻고, 대답이 '대답'을 수락하면 '대답'이 녹색이면 'V'를 클릭하십시오. – Claudio

답변

0

아래이보십시오 (여기 참조 : http://pyautogui.readthedocs.io/en/latest/screenshot.html)을

enter image description here

을 나는 당신이 시도하고이 사건에서 문제가 해결되지 않았 음을 알고 주석에서.

또 다른 아이디어는 버튼 이미지를 화면에서 찾는데 필요한 최소한으로 자르는 것입니다. 일반적으로 중심 근처의 색상은 그림자보다 더 안정적입니다.

내가 아는 의견에서이 문제가 해결되지 않은 것입니다.

당신이 당신의 OS에 Windows 용 투명성을 할 수 있습니까 (투명도는 현재 응용 프로그램이 응용 프로그램의 윈도우의 배경이 무엇인지 표시 무엇을 통해 "볼"수있을 때입니다 - 기본 값은 기능입니다 최신 운영 체제의 여러 버전에서)?

내가 아는 의견에서.

심각한 인식 문제가 발생할 수 있습니다. (? 어떤 수준에) 감소 투명성 문제가 해결되지 않았다, 무엇을 갈 수있는 유일한 올바른 방법이 있음을 의미합니다 :

스위치 투명성이 안정 색상

을 얻을 OFF 기능 그게 - 문제 해결 (특정 시스템에 대해이를 수행하는 방법은 이미지 인식의 주제와 관련이없는 또 다른 질문입니다).

위 또는 모두에서 문제를 해결해야하며 그렇지 않은 경우 pyautogui 옆에있는 다른 이미지 처리 도구를 사용하여 자신의 이미지 인식을해야 할 것입니다.

추가 : [확인] 버튼의 모양과 색상은 여러 가지로 달려 있습니다. 인터넷 브라우저에 표시되는 경우 페이지의 크기를 조정하여 크기를 변경할 수 있습니다. 다른 응용 프로그램에서 사용자 대화 상자를 만든 경우 응용 프로그램에서 시스템 표준을 사용하지 않으면 [확인] 단추의 모양과 색이 다를 수 있습니다. 위에서 말했듯이 시스템이 투명도 기능을 사용하면 색상이 달라질 수 있습니다.

+0

안녕하세요. 이미지를 자르면 이미지가 최소한으로 잘리는 것은 잘 작동하지 않을 것입니다. 인식하려고하는 이미지에 서로 옆에있는 픽셀의 차이가 있기 때문입니다. 투명성을 줄임으로써 문제를 해결하려고 시도했지만 (MacOS Sierra를 사용하고 있습니다) 문제는 여전히 지속됩니다. 내 디스플레이 프로필과 관련이 있다고 생각합니까? 당신의 도움을 주셔서 감사합니다. –

+0

또한 내 코드에서'grayscale = True'를 사용하지만, 팝업 될 때마다 버튼을 인식하지 못합니다. –

+0

업데이트 된 답변보기 - 색상의 변화로 문제를 해결해야합니다. – Claudio