맥 파이썬 opencv 설치 - maeg paisseon opencv seolchi

인공지능이나 Appium을 이용한 테스트 자동화 구현할 때 OpenCV를 사용하게 됩니다.

우선 OpenCV가 뭔지 Mac에 설치하고 가지고 놀아 봅시다.

우선 Mac에 OpenCV를 설치합니다. 설치는 brew로 합니다.

$ brew tap homebrew/science $ brew install opencv

Python3에서 opencv 모듈을 호출하려면 아래와 같은 작업을 해야 한다.

먼저 cv2.cpython-36m-darwin.so 파일을 cv2.so로 변경합니다. 경로를 먼저 확인해 봅니다.

$ ls /usr/local/opt/opencv/lib/python3.6/site-packages/ cv2.cpython-36m-darwin.so

파일이 있다면 cv2.so로 복사합니다.

$ cd /usr/local/opt/opencv/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so $ cp ./cv2.cpython-36m-darwin.so ./cv2.so

그런다음 python3의 경로에 추가해 줍니다.

$ echo /usr/local/opt/opencv/lib/python3.6/site-packages >> /usr/local/lib/python3.6/site-packages/opencv3.pth

마지막으로 brew link를 해줍니다.

$ brew link --overwrite python3

python에 opencv 모듈이 인식하는지 확인해 봅니다.

$ python -c "import cv2"

에러가 없다면 정상 인식이 되는 것입니다.

이제 사진을찍고 opencv로 얼굴을 인식하는 것을 해봅니다. 먼저 사진을 찍어야죠.

아래처럼 python 작성 후 실행해 봅시다.

import cv2 import sys # 입력 파일 저징하기 image_file = "/Users/appium/Documents/tongchun.jpg" # 캐스테이드 파일의 경로 지정하기 cascade_file = "/usr/local/Cellar/opencv/3.3.1_1/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" # 이미지 읽어 들이기 image = cv2.imread(image_file) print(image) # 그레이스케일로 변환하기 image_gs = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 얼굴 인식 특징 파일 읽어 들이기 cascade = cv2.CascadeClassifier(cascade_file) # 얼굴 인식 실행하기 face_list = cascade.detectMultiScale(image_gs, scaleFactor=1.1, minNeighbors=1, minSize=(150, 150)) if len(face_list) > 0: # 인식한 부분 표시하기 print(face_list) color = (0, 0, 255) for face in face_list: x, y, w, h = face cv2.rectangle(image, (x, y), (x+w, y+h), color, thickness=8) # 파일로 출력하기 cv2.imwrite("tongchun-facedetect.png", image) else: print("no face")

에러없이 정상적으로 실행되었다면 tongchun-facedetect.png 파일이 생성되었을 것입니다.

만약 아래와 같은 에러가 출력되었다면 입력되는 사진의 경로를 확인해 주세요. 여러 원인이 있겠지만 대부분 입력 데이터가 없을 경우 발생합니다.

penCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.cpp, line 10638 Traceback (most recent call last): File "opencv-tongchun.py", line 15, in image_gs = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) cv2.error: /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.cpp:10638: error: (-215) scn == 3 || scn == 4 in function cvtColor

재미있네요.

여러명 일때도 재밌네요.

cascase 파일은 /usr/local/Cellar/opencv/3.3.1_1/share/OpenCV/haarcascades/ 에 있습니다.

자세한  설명과 추가 다운로드는 아래 url에서 가능합니다.

[//github.com/opencv/opencv/tree/master/data/haarcascades]

작년에 컴퓨터비전 수업을 들을 때는 3.4.0 버전을 사용하다가 이번 여름방학에 OpenCV캠프 TA를 하면서 최신 버전을 사용하게 되었다. 가장 최신 버전을 새로 설치했는데 OpenCV 라이브러리 사용은 version에 따라 달라지는 것 같아 버전 사용에 주의해야할 것 같다고 느꼈다. 항상 vscode만 사용하다가 xcode에서의 OpenCV 사용법도 알아야해서 xcode 설정을 하게 되었다. 교수님께서 제공해주신 가이드라인을 보고 따라하다가 내 xcode환경에서는 어마어마한 에러들과 함께 잘 작동하지 않아서 해결했던 방법을 포스팅하게 되었다. 예전에 갑자기 xcode가 뭔가 좀 더 똑똑해보이는 느낌이라 써볼까 하다가 어렵게 느껴져서 익숙한 vscode만 썼는데, 이런 기회로 써보게 되었다. 🤓 하지만 결론은 그래도 vscode가 최고다.. 👩🏻‍💻🍒

글 작성자: 코코띵

 

😃 파이썬이 설치되어있다는 가정하에 쓰여졌습니다.

  1. 파이썬 버전을 터미널창에서 다음과 같은 명령어를 통해서 확인해줍니다.
python --version
  1. Numpy와 OpenCV를 위한 환경을 만들어줍시다.
python3.7 -m venv work source work/bin/activate
  1. 설정이 완료되었다면 Numpy와 OpenCV를 설치해줍시다.
pip install numpy pip install opencv-python==4.1.2.30

시간을 가지고 기다려줍시다. Mac Catalina에서는 OpenCV 최신버전이 제대로 작동하지 않는다는 이슈가 있으므로 구버전을 설치해줍니다.

  1. 설치가 완료되었다면 이제 OpenCV사용이 가능합니다.

다음과 같은 이미지를 다운받은 후 테스트를 해줍니다.

파이참의 경우 다음과 같은 방식으로 확인할 수 있습니다.

Preferences를 들어간 후 Python Interpreter에서 확인 가능합니다.

import cv2 print("OpenCV version:") print(cv2.__version__) img = cv2.imread("clouds.jpg") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imshow("Over the Clouds", img) cv2.imshow("Over the Clouds - gray", gray) cv2.waitKey(0) cv2.destroyAllWindows()

위 구름사진을 같은 폴더에 넣어주고 실행해보면 정상적으로 출력되는것을 볼 수 있습니다.

Written with StackEdit.

공유하기

게시글 관리

구독하기코코의 행복한 개발도전기

저작자표시

  • 카카오스토리
  • 트위터
  • 페이스북

'Python > OpenCV' 카테고리의 다른 글

OpenCV로 항공사진 차선 검출도전기 - 1  (0)2020.05.17

Toplist

최신 우편물

태그