| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
| 31 |
- sshpass
- nohup
- Materials
- Jupyter Notebook
- STF_PortForwarding
- openpyxl
- appium server
- 실행권한
- postgresql
- mysql
- postgres
- 28015
- ubuntu
- rethinkdb
- ssh
- kitura
- STF
- GoCD
- ftp
- nGrinder
- appium
- perfect
- centos
- port forwarding
- insert
- create table
- Jupyter
- PYTHON
- SWIFT
- nmap
- 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 |