2019년 9월 10일 화요일

우분투에서 OpenCV 빌드 및 설치 방법

우분투 18.04 업그레이드 후 다시 OpenCV를 설치하려니 복잡하여, 테크트리를 정리한다.

이 글에서는 아나콘다 환경에서 설치하는 방법과 그 외의 환경에서 설치하는 방법으로 구분하였다. 

아나콘다 환경 설치
아나콘다 환경에서 설치하는 방법은 다음 링크를 참고하였다. 
아나콘다는 source activate <environment-name> 으로 환경 설정후 설치해야 한다.  설치 방법은 다음과 같다. 
pip install opencv-python
pip install opencv-contrib-python

소스코드 빌드 및 설치 방법
빌드해 직접 설치하는 방법은 다음 링크를 참고하였다. 
다음과 같이 업데이트한다.
sudo apt-get update
sudo apt-get upgrade

다음과 같이 패키지를 설치한다.
sudo apt-get install build-essential cmake
sudo apt-get install pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev
sudo apt-get install libv4l-dev v4l-utils
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 
sudo apt-get install libgtk2.0-dev
sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev  
sudo apt-get install libatlas-base-dev gfortran libeigen3-dev
sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy

소스코드를 다운받을 폴더를 만든다.
mkdir opencv
cd opencv

소스코드를 받는다.
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.1.zip
unzip opencv.zip

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

빌드 폴더를 만든다.
cd opencv-4.0.1/
mkdir build
cd build

메이크 파일을 생성한다.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=OFF \
-D WITH_IPP=OFF \
-D WITH_1394=OFF \
-D BUILD_WITH_DEBUG_INFO=OFF \
-D BUILD_DOCS=OFF \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_QT=OFF \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.0.1/modules \
-D WITH_V4L=ON  \
-D WITH_FFMPEG=ON \
-D WITH_XINE=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D PYTHON2_INCLUDE_DIR=/usr/include/python2.7 \
-D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ \
-D PYTHON2_PACKAGES_PATH=/usr/lib/python2.7/dist-packages \
-D PYTHON2_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.6m \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/  \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
../

라이브러리를 메이크한다.
make -j4
sudo make install

라이브러리 경로를 확인하고 없으면 추가한다.
cat /etc/ld.so.conf.d/*
sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

파이썬을 위한 cv2 라이브러리를 복사한다.
sudo cp /usr/local/python/cv2/python-2.7/cv2.so /usr/local/lib/python2.7/dist-packages/
sudo cp /usr/local/python/cv2/python-2.7/cv2.so /usr/lib/python2.7/dist-packages/
sudo cp /usr/local/python/cv2/python-3.6/cv2.cpython-36m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages
sudo cp /usr/local/python/cv2/python-3.6/cv2.cpython-36m-x86_64-linux-gnu.so /usr/local/lib/python3.6/dist-packages

다음과 같이 파이썬에서 버전을 확인한다. 버전이 나오면 제대로 설치된 것이다. 
python
import cv2
cv2.__version__

이 경우, 다음과 같이 예제를 실행해 보면 잘 수행되는 것을 확인할 수 있다.
facedetect 실행 결과

video cam 테스트 화면





댓글 없음:

댓글 쓰기