일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- postgres
- centos
- 28015
- STF
- nGrinder
- nohup
- nmap
- appium
- port forwarding
- ubuntu
- STF_PortForwarding
- openpyxl
- GoCD
- 실행권한
- ssh
- sshpass
- create table
- appium server
- insert
- PYTHON
- mysql
- Jupyter
- rethinkdb
- SWIFT
- perfect
- kitura
- Jupyter Notebook
- Materials
- postgresql
- ftp
- Today
- Total
don't stop believing
Mac에 OpenCV 설치하고 가지고 놀기 본문
인공지능이나 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, inimage_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]
'Python > OpenCV' 카테고리의 다른 글
template matching에서 size 문제 (1) | 2017.11.23 |
---|---|
auto canny function 만들어 사용하기 (1) | 2017.11.21 |
OpenCV Source설치와 Extra Modules (for Mac) (1) | 2017.11.21 |
Template Matching in OpenCV (0) | 2017.11.08 |
Windows에 OpenCV 설치하기 (by wheel) (1) | 2017.11.08 |