OpenCV 이미지 프로세싱

OpenCV 설치

http://opencv.org공식 사이트와 https://www.pyimagesearch.com/2018/05/28/ubuntu-18-04-how-to-install-opencv/에도 설치법이 나와 있어요.

이 글을 보셔도 되어요. 어차피 베껴왔어요.

우리가 할 것은 github에서 opencv 소스를 받아와서 직접 빌드하는 거예요.

사전 작업

sudo apt-get update
sudo apt-get upgrade

일단 패키지 업데이트를 하고요.

sudo apt-get install python3 build-essential cmake unzip pkg-config libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran python3-dev

필요한 패키지를 다 받아요.

이제 소스를 홈 디렉토리에 받아보아요.

wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.1.zip -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.1.zip

압축을 풀어요.

unzip opencv.zip opencv_contrib.zip

VirtualEnv

이제 VirtualEnv 환경 설정을 해보아요. 이 글에 virtualenv의 유용함이 잘 나와 있어요.

wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

텍스트 에디터로 ~/.bashrc를 수정해요.

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc

끝났어요. 이제 가상 환경을 만들어요.

mkvirtualenv [가상 환경 이름] -p python3

가상 환경에 들어가요.

workon [가상 환경 이름]

터미널 앞에 가상 환경 이름이 붙는다면 잘 된 거예요.

빌드

$ workon [가상 환경 이름]
$ cd ~/opencv-3.4.1
$ mkdir build
$ cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
	-D INSTALL_C_EXAMPLES=OFF \
	-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \
	-D PYTHON_EXECUTABLE=~/.virtualenvs/[가상 환경 이름]/bin/python \
	-D BUILD_EXAMPLES=ON ..

이제 좀 기다리세요. 중간에 에러 뜨는지 터미널 창 계속 지켜보세요. ~~~~.h: no such file or directory 오류가 뜨면 build 디렉토리를 삭제하고 다시 만들어 들어간 뒤 cmake를 -D ENABLE_PRECOMPILED_HEADERS=OFF 옵션을 추가하여 실행하세요.

이제 인내의 시간이 왔어요.

make -j4

j뒤에 붙는 숫자는 스레드예요. j4는 작업을 동시에 네 개까지 진행할 수 있다는 거예요. 숫자가 높을수록 빨라지기는 하는데 그만큼 메모리도 많이 먹어요. 램이 부족하면 컴퓨터가 뻗어요. 숫자를 안 붙이면 스레드 수에 제한이 없어지지만 시도해보지는 마세요. 제가 해봤다가 노트북이 뻗었어요. make 중간에 오류가 나면 build 폴더를 삭제하고 다시 만들어 들어가 cmake를 한 뒤 -j 옵션을 붙이지 말고 그냥 make만 입력하세요.

사후 작업

sudo make install
sudo ldconfig
cd /usr/local/lib/python3.6/site-packages/
sudo mv cv2.cpython-36m-x86_64-linux-gnu.so cv2.so
cd ~/.virtualenvs/[가상 환경 이름]/lib/python3.6/site-packages/
ln -s /usr/local/lib/python3.6/site-packages/cv2.so cv2.so

확인

$ workon [가상 환경 이름]
$ python
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.1'
>>> exit()

이제 소스코드 zip파일은 삭제해도 돼요.

댓글

댓글 본문
  1. Froggy
    Raspberry pi B3 에서 make -j4 할 때는 문제가 없었는데, 최신 기종 B3+에서는 하다가 계속 멈춰서 make 로 했더니 되더군요. 어떤 차이가 있어서 그런지 모르겠어요.