don't stop believing

Mac에 OpenCV 설치하고 가지고 놀기 본문

Python/OpenCV

Mac에 OpenCV 설치하고 가지고 놀기

Tongchun 2017. 11. 2. 15:47

인공지능이나 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에서 가능합니다.

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


Comments