2018-01-04(목)
OpenCV 란?
-
Computer Vision library 의 약자로 이미지 검수를 기계적으로 처리하도록 도와주는 이미지 처리 라이브러리
-
Image Processing : Circle Detection, 이미지 선명하게 만들기, 필터를 이용해서 edge detection 등에 응용
-
Robot/ Machine / Video / Vision : 얼굴인식, 무인자동차가 장애물 인식, 사람 객체 인식, 이미지 매칭 등에 응용
-
AI : 딥러닝에 사용, 이미지가 어떤 내용인지 이해, 이미지의 얼굴 감정 인지 등에 응용가능
-
3D Geometry (기하학) : 이미지에서 3차원 정보를 인식할 수 있다. 여러 측면의 이미지를 조합해서 3D 도면 구성 가능 이와 같이 다양한 분야에서 응용될 수 있는 이미지 처리 라이브러리!!
-
영상 처리와 컴퓨터 비전 관련 오픈소스 라이브러리로 250개가 넘는 알고리즘으로 구성됨
-
C, C++, Python 등 다양한 언어의 인터페이스를 갖춤
-
윈도우즈, 리눅스 안드로이드, 맥 os 다양한 운영체제를 지원
OpenCV-Python
-
OpenCV의 Python API
-
파이썬은 스크립트 언어이기 때문에 C, C++ 과 같은 컴파일 언어에 비해 속도가 느림
-
성능적인 이슈가 있는 부분은 C/C++로 구현한 후 이를 파이썬 Wrapper 를 만들면 해결 가능
Python3 설치 및 Pycharm 개발 환경 구성
-
참고하는 블로그 포스트가 Python3.x 와 OpenCV 3.2.x + contrib 버전을 적용하고 있다. 그래서 Python3 를 현재 윈도우 노트북에 설치한다.
-
그런데 Python3 를 설치하고 환경변수가 제대로 설정되었는지 까지 몇 번을 확인했지만 cmd 에서 python3 를 사용할 수가 없었다.
-
python3 를 현재 윈도우 os 에 접속한 local user 하위 폴더에 설치(default 설정)했었다. local user 의 환경변수와 시스템 환경 변수 설정을 확인하고도 여전히 python3를 cmd 에서 사용할 수 없었다.
-
그래서 python3 를 우선 삭제하고 global 적용이 되도록 재설치 했다. Install Now를 누르는 대신 Customize installation 을 선택해서 global 관련 항목(all user 가 사용할 수 있도록 설치한다는 내용 )을 체크하고 설치를 했다.
-
설치 첫화면 하단 Add Python 3.xx to PATH 역시 체크했다. 환경변수 PATH에 python3를 등록하는 것이다. 그러면 어느 위치에 있든 상관 없이 python3를 사용할 수 있는 것
- 이렇게 all user 가 사용할 수 있도록 재설치를 하고 cmd 를 켜서 python –version 명령어로 확인을 하니 Python3 버전이 출력되었다. 윈도우에서는 바로 python3 가 아니라 python 명령에 3 버전이 등록되어 버리네.
>python --version # check python version
Python 3.6.4
>pip --version # check python version of pip
pip 9.0.1 from c:\program files\python36\lib\site-packages (python 3.6)
-
Pycharm Project 를 실행시키고 Project interpreter 를 Python 3.6 으로 설정하니 Pycharm 이 알아서 Virtual Environment 를 생성한다. 이 과정이 왜 자동으로 일어나는지 잘 모르겠다. 그리고 Virtual Environment 가 여러 project 에서 python package 가 충돌나지 않도록 하기 위한 것이라는 건 알겠지만 그 자세한 개념을 잘 모르겠다. 공부가 필요한 부분이다.
-
venv 과 pycharm 에서 생성되는 폴더 및 파일들은 제외하고 GitHub 에 올리기 위해서 .gitignore 파일을 생성한다.
-
그리고 일단 Git-hub에 프로젝트를 만들고 push 했다.
-
자 이제 본격적으로 튜토리얼을 따라해보자!
필요 라이브러리 설치하기
-
Pycharm 하단의 Terminal 창에서 pip 명령어를 통해 필요한 라이브러리르 설치한다.
-
아 근데 터미널에서 바로 pip install 명령어를 이용해서 설치하면 되는데, 왜 다른 글에서는 파이썬 스크립트 폴더에 패키지를 먼저 다운받으라고 하는 걸까?
>pip install matplotlib
>pip install numpy
>pip install OpenCV-Python
# 아래는 OpenCV 설치 중 출력 결과
Collecting OpenCV-Python
Downloading opencv_python-3.4.0.12-cp36-cp36m-win_amd64.whl (33.3MB)
100% |████████████████████████████████| 33.4MB 19kB/s
Requirement already satisfied: numpy>=1.11.3 in c:\users\viva\pycharmprojects\opencv-practice\venv\lib\site-packages (from OpenCV-Python)
Installing collected packages: OpenCV-Python
Successfully installed OpenCV-Python-3.4.0.12
-
OpenCV가 잘 설치되었는지 확인을 위해서 python console 에서 import cv2 를 수행해본다. 에러메시지가 출력되지 않는다면 성공!
-
python code 상단에는 항상 encoding 설정을 추가하자.
# -*- coding: utf-8 -*-
이미지 열기
def showImage():
FILENAME = 'images/bus_people.jpg'
# 이미지 파일을 읽기 위한 객체를 리턴 인자(이미지 파일 경로, 읽기 방식)
# cv2.IMREAD_COLOR : 투명한 부분 무시되는 컬러
# cv2.IMREAD_GRAYSCALE : 흑백 이미지로 로드
# cv2.IMREAD_UNCHANGED : 알파 채컬을 포함한 이미지 그대로 로드
image = cv2.imread(FILENAME, cv2.IMREAD_GRAYSCALE)
cv2.namedWindow('model', cv2.WINDOW_NORMAL) #윈도우 창의 성격 지정 인자 : (윈도우타이틀, 윈도우 사이즈 플래그) , 사용자가 크기 조절할 수 있는 윈도우 생성
cv2.imshow('model', image) # 화면에 이미지 띄우기 인자;(윈도우타이틀, 이미지객체)
cv2.waitKey(5000) # 지정된 시간 동안 키보드 입력 대기 (ms) , 0이면 key 입력할 때 까지 계속 대기, 입력받은 key 값을 int 로 반환 (아스키코드)
# 대기시간이 끝나면 아래 코드로 진행
cv2.destroyAllWindows() # 생성한 윈도우 제거