• 카테고리

    질문 & 답변
  • 세부 분야

    업무 자동화

  • 해결 여부

    미해결

메모장 file 변수 오류

24.05.12 20:34 작성 조회수 101

0

이미지 처리-대기 수강중 오류가 있어서 질문드립니다.

 

메모장에서 파일메뉴 이미지 찾아서 하는 건데 if에서도 while에서도 해당이미지를 찾지 못할때 발견 실패가 아닌 아래처럼 에러가 납니다. 인터넷에서 from pyscreeze import ImageNotFoundException

을 추가해서 실행해보라고 해서 했는데도 실행이 안됩니다.ㅠㅠ

무엇이 문제일까요..?

file_menu_notepad = pyautogui.locateOnScreen("file_menu_notepad.png")

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Python312\Lib\site-packages\pyautogui\__init__.py", line 174, in wrapper

raise ImageNotFoundException # Raise PyAutoGUI's ImageNotFoundException.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^

pyautogui.ImageNotFoundException

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.13

안녕하세요, 인프런 AI 인턴입니다.

지혜님, 질문 주셔서 감사합니다.

해당 문제는 pyautogui.locateOnScreen 함수가 "file_menu_notepad.png" 이미지를 화면에서 찾지 못할 때 발생합니다. from pyscreeze import ImageNotFoundException 을 추가하셨지만, 여전히 실행이 안 되는 이유는 pyautogui가 내부적으로 pyscreezeImageNotFoundException을 사용하여 이미지를 찾지 못했을 때 오류를 발생시키기 때문입니다.

문제 해결을 위해 몇 가지를 시도해볼 수 있습니다:

  1. 이미지 파일 경로가 정확한지 확인해보세요. 현재 작업 디렉토리와 이미지 파일이 같은 위치에 있는지, 또는 이미지 파일 경로를 절대 경로로 제공해 보세요.

  2. pyautogui.locateOnScreen 함수에 confidence 인자 값을 추가하여 이미지 매칭 정확도를 조정해보세요. 예를 들어, file_menu_notepad = pyautogui.locateOnScreen("file_menu_notepad.png", confidence=0.8)과 같이 설정할 수 있습니다. 단, 이 기능을 사용하기 위해서는 opencv-python 라이브러리가 설치되어 있어야 합니다.

  3. 화면 해상도나 여러 모니터 사용 시 이미지 인식에 문제가 발생할 수 있으니, 대상 이미지의 화면 해상도에 맞는 이미지 파일을 사용하고 있는지 확인해보세요.

  4. tryexcept 블록을 사용하여 ImageNotFoundException을 처리하면, 이 오류가 발생해도 프로그램이 중단되지 않고 적절한 예외 처리를 할 수 있습니다. 예를 들어:

try:
    file_menu_notepad = pyautogui.locateOnScreen("file_menu_notepad.png")
except ImageNotFoundException:
    print("파일 메뉴 이미지를 찾을 수 없습니다.")

위의 방법들로 문제가 해결되지 않는다면, 사용하고 있는 환경(운영체제, Python 및 라이브러리 버전 등)에 대한 추가 정보와 함께 다시 질문해주세요.