이번 글에서는 EasyOCR 설치 후 OpenCV의 imshow 함수에서 에러가 나는 문제를 해결한 기록을 남긴다.
에러 메시지
error: opencv(4.8.1) /io/opencv/modules/highgui/src/window.cpp:1272: error: (-2:unspecified error) the function is not implemented. rebuild the library with windows, gtk+ 2.x or cocoa support. if you are on ubuntu or debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvshowimage'
예상 원인
EasyOCR 설치 시 특정 버전(4.8.1)의 Opencv를 설치가 되면서 현재 환경과 호환성 문제가 발생한 것으로 예상된다.
Ubuntu 20.04 운영체제, opencv-python 4.6.x 버전을 사용 중 "pip install easyocr" 명령을 이용해 EasyOCR 설치하자 opencv-python 4.8.1이 설치되었다. 해당 에러는 이렇게 설치된 직후 webcam에서 읽어온 이미지를 imshow 함수로 표기해주는 과정에서 발생했다.
우분투 환경임에도 불구하고 에러메시지에 " src/window.cpp:1272: error" 라고 표기된 점과 우분투 혹은 데비안을 사용 중이라면 "libgtk2.0-dev"와 "pkg-config"를 설치 후 다시 시도하라는 점으로 미루어 볼 때, 호환성 문제로 보인다.
다만, 이상한 점은 해당 오류가 발생한 환경과 동일한 환경에서 똑같이 easyOCR 설치 후 에러가 발생하지 않은 경우도 있었다. 확인해보니 해당 경우는 opencv-python 4.6.x 버전이 4.8.1로 업그레이드 되지 않고 유지된 상태였다.
즉, easyocr 설치 시 우분투 환경에 호환되지 않는 버전의 opencv를 강제 설치하게 되는 경우 해당 오류가 발생한다고 볼 수 있다.
Opencv의 버전을 강제로 변경하게 되는 트리거는 발견하지 못했으나 호환가능한 opencv로 재설치해주거나 에러 메시지에서 권장한 방법으로 해결 가능할 것으로 보인다.
해결 방법
OpenCV 재설치
pip uninstall opencv-python
pip install opencv-python
pip 명령어로 opencv-python 라이브러리를 삭제 후 재설치한다.
EasyOCR 설치 시 설치 환경의 호환성은 무시한 채 설치된 opencv를 제거하고 현재 환경에 맞는 opencv가 설치되도록 유도한 것이다.
동일한 4.8.1 버전이 설치되었으나 더 이상 해당 에러가 발생하지 않고 정상적으로 opencv, easyocr 기능을 모두 사용할 수 있게 되었다.
'Data Science & AI > Computer Vision' 카테고리의 다른 글
[OpenCV] Image Crop (0) | 2024.01.01 |
---|
댓글