pkg-config --modversion opencv
설치 버전 정보 출력
기존 패키지 삭제.
sudo apt-get remove --purge libopencv* python-opencv
sudo apt-get autoremove
삭제 확인
pkg-config --modversion opencv
동적 라이브러리 삭제(--purge) 옵션만 사용할 경우
sudo find /usr/local/ -name "*opencv*" -exec rm -i {} \;
sudo apt-get update
sudo apt-get upgrade
0. 저장소 지원하는 패키지 설치 할 경우.
OpenCV 설치
sudo apt update
sudo apt install python3-opencv
설치 확인.
python3 -c "\
import cv2
print(cv2.__version__)"
이 방법은 자동 설치는 쉬우나 개발에 유연성이 없으므로 소소코드 버전으로 설치한다.
기존 패키지 삭제.
sudo apt-get purge libopencv* python-opencv
sudo apt-get autoremove
파일썬 버전 확인
python3 --version
Python 3.6.5
파일썬 간단하게 테스트
python3
>> print("OpenCV!")
OpenCV!
>> quit()
1. 개발 도구 설치
sudo apt install build-essential cmake git pkg-config libgtk-3-dev
OpenCV 비디오 스트림 처리, 개별 프레임 접근 하기 위해 다음 라이브러리 설치
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libxine2-dev
실시간 비디오 캡처 API
sudo apt-get install v4l-utils
GStreamer는 비디오 스트리밍을 위한 라이브러리 설치
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
OpenCV는 JPEG, PNG, TIFF등 디스크에 있는 이미지 파일을 로드 할 수 있다.
디스크에 있는 이미지 파일을 로드 하려면 이미지 I/O 패키지가 필요함
sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr
로드 된 후 모니터 화면에 보여주기 위해서는 highgui 모듈, GUI에 의존하는 GTK 개발 라이브러리 필요.
sudo apt install libgtk-3-dev
만약 다른 GUI 일 경우 선택 가능
libgtk2.0-dev
libqt4-dev
libqt5-dev
OpenGL 지원 라이브러리 설치
sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev
OpenCV 기본 개발 라이브러리 및 이미지 다차원 처리 패키지 등
sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev libatlas-base-dev libeigen3-dev
sudo apt install libatlas-base-dev gfortran
python2-7 OpenCv-Python 바인딩 필요 라이브러리 추가.
sudo apt-get install python2.7-dev python-numpy
2. 소스코드 복사
mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
3. Python 환경 설정
파이썬 패키기 관린 pip 설치
cd ~
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
가상 개발 환경 구성
https://virtualenv.pypa.io/en/latest/ 및 https://virtualenvwrapper.readthedocs.io/en/latest/ 를 설치한다.
이 두개의 패키지는 별도의 파이썬 버전과 개발 환경을 생성할 수 있게 한다.
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip
사용자 환경 설정.
vi /home/username/.bashrc
# virtualenv 및 virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
:wq
로그아웃 또는 재부팅, 아니면 source /home/username/.bashrc
가상 cv 환경 구축
mkvirtualenv cv -p python3
cv 가상 환경 확인
workon cv
(cv) username:~$
OpenCV 이미지 다차원 처리 NumPy 배열로 표현하며 최종 단계 숫자로 처리함.
pip install numpy -> 이 부분은 apt-get는 일반 환경이며 여기서는 가상 환경에서의 라이브러리.
4. CMake로 OpenCV 설정
workon cv
cd ~/opencv_build/opencv
git checkout 4.0.0
cd ~/opencv_build/opencv_contrib
git checkout 4.0.0
컴파일 구성
mkdir build
cd build
a) 가상환경
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON ..
b) 일반 환경 구성 라이브러리 경로 설정 없음
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 OPENCV_ENABLE_NONFREE=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_build/opencv_contrib/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D WITH_V4L=ON \
-D WITH_FFMPEG=ON \
-D WITH_XINE=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
c) 일반 환경구성 라이브러리 경루 추가
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 OPENCV_ENABLE_NONFREE=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_build/opencv_contrib/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-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 \
-D BUILD_EXAMPLES=ON ..
경로 패스 지정의 경우: CMAKE 출력 파일의 패스 정보 출력 부분이 없다면 추가 해준다.
OpenCV 4.0.0에서 pkg-config 지원하지 않음.
OPENCV_GENERATE_PKGCONFIG=ON 옵션 추가해, pkg-config의 사용.
https://github.com/opencv/opencv/issues/13154
현재 cv 이름의 가상 환경을 만든 후 일반 환경 구성으로 컴파일해 적용 테스트 중.
4. OpenCV 컴파일 및 설치
cat /proc/cpuinfo | grep processor | wc -l
time make -j4
Makefile:162: recipe for target 'all' failed
make clean
make
sudo make install
동적 라이브러리 설정 확인
cat /etc/ld.so.conf.d/*
/usr/local/lib ---> 존재 여부 확인
없을 경우 /usr/local/lib 동적 라이브러리 추가
sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf'
적용.
sudo ldconfig
5. 확인
pkg-config --modversion opencv
6.심볼 링크
가상 개발 환경
ls /usr/local/python/cv2/python-3.6/
cv2.cpython-36m-x86_64-linux-gnu.so
일반 개발 환경.
ls /usr/lib/lib/python3/dist-packages/
cv2.cpython-36m-x86_64-linux-gnu.so
이름 변경.
가상 개발 환경
cd /usr/local/python/cv2/python-3.6
sudo mv cv2.cpython-36m-x86_64-linux-gnu.so cv2.so
일반 개발 환경
cd /usr/lib/python3/dist-packages
이름 변경 없이 사용.
심볼 링크
가상 개발 환경
cd ~/.virtualenvs/cv/lib/python3.6/site-packages/
ln -s /usr/local/python/cv2/python-3.6/cv2.so cv2.so
일반 개발 환경
cd /usr/lib/python3/dist-packages
이름 변경 없이 사용
특정 버전의 개발 환경.
cv2.so 파일 이름을 변경해 관리한다.
cv2.so의 이름을 변경하는 대신, cv2.opencv3.4.4.so 사용.
심볼릭 링크에서 버전별로 적절하게 사용한다.
참고:
apt-get remove --purge 삭제시 cv2.so 파일 삭제 됨.
즉, 가상 환경에서는 문제 없시 동작, 만약 일반 환경에서도 동작 하기 위해서는 cv2.so 파일을 복사한다.
sudo cp /usr/local/python/cv2/python-2.7/cv2.so /usr/local/lib/python2.7/disk-packages/
sudo cp /usr/local/python/cv2/python-2.7/cv2.so /usr/lib/python2.7/disk-packages/
sudo cp /usr/local/python/cv2/python-Version/cv2.cpython-36m-x86_64-linux-gnu.so /usr/lib/pythonVersionVersionVersion/disk-packages/
sudo cp /usr/local/python/cv2/python3/cv2.cpython-36m-x86_64-linux-gnu.so /usr/local/lib/pythonVersionVersion3.6/disk-packages/
6 단계 : OpenCV 테스트
cd /home/username/
workon cv
python
>>> import cv2
>>> cv2.__version__
'4.0.0'
댓글 없음:
댓글 쓰기