티스토리 뷰
728x90
출처
- How To Add Swap Space on Debian 9 | Linuxize
- Install OpenCV 4 on your Raspberry Pi - PyImageSearch
- [OpenCV 설치] Ubuntu OpenCV 설치, C++ 테스트
- How to find OpenCV version in Python and C++ ? | Learn OpenCV
- 4.0.0 does not produce pkgconfig file · Issue #13154 · opencv/opencv · GitHub
업데이트와 업그레이드
$ sudo apt-get update && sudo apt-get upgrade
OpenCV 4.1.1 관련 패키지 설치
OpenCV 빌드 관련 도구 설치
$ sudo apt-get install build-essential cmake unzip pkg-config
OpenCV 관련 라이브러리 설치
$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev $ sudo apt-get install libxvidcore-dev libx264-dev $ sudo apt-get install zlib1g-dev
GTK 관련 라이브러리 설치
$ sudo apt-get install libgtk-3-dev
OpenCV 수치 최적화가 된 패키지 설치
$ sudo apt-get install libatlas-base-dev gfortran
Python3 설치
$ sudo apt-get install python3-dev
OpenCV 4.1.1 용 Python 3 가상 환경 구성
pip 설치
$ wget https://bootstrap.pypa.io/get-pip.py $ sudo python3 get-pip.py Collecting pip Downloading https://files.pythonhosted.org/packages/30/db/9e38760b32e3e7f40cce46dd5fb107b8c73840df38f0046d8e6514e675a1/pip-19.2.3-py2.py3-none-any.whl (1.4MB) |████████████████████████████████| 1.4MB 768kB/s Installing collected packages: pip Found existing installation: pip 8.1.1 Uninstalling pip-8.1.1: Successfully uninstalled pip-8.1.1 Successfully installed pip-19.2.3
virtualenv, virtualenvwrapper 설치
$ sudo pip install virtualenv virtualenvwrapper $ sudo rm -rf ~/get-pip.py ~/.cache/pip
python3, virtualenv 환경설정
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile $ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile $ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile $ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile $ source ~/.profile
가상환경을 만들고, OpenCV 4.1.1 관련 패키지 추가
$ mkvirtualenv cv -p python3 Already using interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in /home/pi/.virtualenvs/cv/bin/python3 Also creating executable in /home/pi/.virtualenvs/cv/bin/python Installing setuptools, pip, wheel... done. virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/predeactivate virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/postdeactivate virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/preactivate virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/postactivate virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/cv/bin/get_env_details
workon 명령을 사용하여 cv 환경에 있는지 확인
pi@raspberrypi:~$ workon cv
(cv) pi@raspberrypi:~$
SWAP 사이즈 늘리기
현재 사용중인 SWAP 사이즈 확인
$ free -h total used free shared buff/cache available Mem: 495M 126M 263M 396K 104M 346M Swap: 247M 152M 94M $ sudo swapon --show NAME TYPE SIZE USED PRIO /dev/zram0 partition 61.9M 38.1M 5 /dev/zram1 partition 61.9M 38.2M 5 /dev/zram2 partition 61.9M 38.1M 5 /dev/zram3 partition 61.9M 38.2M 5
Swap File 파일 만들기 (2가지 방법)
방법1
$ sudo fallocate -l 2G /swapfile
방법2
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16 16+0 records in 16+0 records out 2147483648 bytes (2.1 GB, 2.0 GiB) copied, 138.741 s, 15.5 MB/s
Swap File 파일 읽고 쓰기 권한 병경
$ sudo chmod 600 /swapfile
mkswap 도구를 사용하여 Linux 스왑 파일로 설정
$ sudo mkswap /swapfile Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=2cb87e99-2b39-4f99-9c05-46e5012baef5
스왑 파일을 활성화
$ sudo swapon /swapfile
Linux 부팅시 스왑파일 자동으로 사용하도록 적용
/etc/fstab 파일 열어서 내용 추가
$ sudo vi /etc/fstab
추가될 내용
/swapfile swap swap defaults 0 0
확인
$ sudo swapon --show NAME TYPE SIZE USED PRIO /dev/zram0 partition 61.9M 38M 5 /dev/zram1 partition 61.9M 38M 5 /dev/zram2 partition 61.9M 38M 5 /dev/zram3 partition 61.9M 38.1M 5 /swapfile file 2G 0B -1 $ free -h total used free shared buff/cache available Mem: 495M 132M 122M 556K 239M 340M Swap: 2.2G 151M 2.1G
numpy 파이썬 패키지 설치(OpenCV관련 수학 함수 모음)
pi@raspberrypi:~$ workon cv (cv) pi@raspberrypi:~$ pip install numpy Collecting numpy Created wheel for numpy: filename=numpy-1.17.1-cp35-cp35m-linux_armv7l.whl size=8686923 sha256=2628ac3cf647d10ebd10bc9c1eab6defd408d23f7d997728dc1f8b231f8a53df Stored in directory: /home/pi/.cache/pip/wheels/ba/05/2b/885479a25e17d366187c96094978de4807cac569ab52564de2 Successfully built numpy Installing collected packages: numpy Successfully installed numpy-1.17.1 (cv) pi@raspberrypi:~$ python Python 3.7.3 (default, Apr 3 2019, 05:39:12) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> quit()
OpenCV 4.1.1 다운로드
OpenCV 4.1.1 소스 다운로드
$ cd ~ $ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.1.zip $ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.1.zip
압축풀기
$ unzip opencv.zip $ unzip opencv_contrib.zip
디렉토리명 변경
$ mv opencv-4.1.1 opencv $ mv opencv_contrib-4.1.1 opencv_contrib
OpenCV 컴파일
CMake 실행
$ workon cv $ cd ~/opencv $ mkdir build $ cd build $ echo $(which python3) /usr/bin/python3 $ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D ENABLE_NEON=ON \ -D ENABLE_VFPV3=ON \ -D BUILD_TESTS=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ -D INSTALL_PYTHON_EXAMPLES=OFF \ -D OPENCV_GENERATE_PKGCONFIG=YES \ -D PYTHON_DEFAULT_EXECUTABLE=$(which python3) \ -D BUILD_EXAMPLES=OFF .. ... 생략 ... -- General configuration for OpenCV 4.1.1 ===================================== -- Version control: unknown -- -- Extra modules: -- Location (extra): /home/pi/opencv_contrib/modules -- Version control (extra): unknown -- -- Platform: -- Timestamp: 2019-09-04T04:59:12Z -- Host: Linux 3.4.113-sun8i armv7l -- CMake: 3.5.1 -- CMake generator: Unix Makefiles -- CMake build tool: /usr/bin/make -- Configuration: RELEASE -- -- CPU/HW features: -- Baseline: VFPV3 NEON -- requested: DETECT -- required: VFPV3 NEON -- -- C/C++: -- Built as dynamic libs?: YES -- C++ Compiler: /usr/bin/c++ (ver 5.4.0) -- C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -mfpu=neon -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -- C++ flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -mfpu=neon -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG -- C Compiler: /usr/bin/cc -- C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -mfpu=neon -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG -- C flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -mfpu=neon -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG -- Linker flags (Release): -Wl,--gc-sections -- Linker flags (Debug): -Wl,--gc-sections -- ccache: NO -- Precompiled headers: YES -- Extra dependencies: dl m pthread rt -- 3rdparty dependencies: -- -- OpenCV modules: -- To be built: aruco bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dpm face features2d flann freetype fuzzy gapi hfs highgui img_hash imgcodecs imgproc line_descriptor ml objdetect optflow phase_unwrapping photo plot python3 quality reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab xfeatures2d ximgproc xobjdetect xphoto -- Disabled: world -- Disabled by dependency: - -- Unavailable: cnn_3dobj cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv hdf java js matlab ovis python2 sfm viz -- Applications: perf_tests apps -- Documentation: NO -- Non-free algorithms: YES -- -- GUI: -- GTK+: YES (ver 3.18.9) -- GThread : YES (ver 2.48.2) -- GtkGlExt: NO -- VTK support: NO -- -- Media I/O: -- ZLib: /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.8) -- JPEG: /usr/lib/arm-linux-gnueabihf/libjpeg.so (ver 80) -- WEBP: build (ver encoder: 0x020e) -- PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.2.54) -- TIFF: /usr/lib/arm-linux-gnueabihf/libtiff.so (ver 42 / 4.0.6) -- JPEG 2000: build (ver 1.900.1) -- OpenEXR: build (ver 2.3.0) -- HDR: YES -- SUNRASTER: YES -- PXM: YES -- PFM: YES -- -- Video I/O: -- DC1394: NO -- FFMPEG: YES -- avcodec: YES (56.60.100) -- avformat: YES (56.40.101) -- avutil: YES (54.31.100) -- swscale: YES (3.1.101) -- avresample: NO -- GStreamer: NO -- v4l/v4l2: YES (linux/videodev2.h) -- -- Parallel framework: pthreads -- -- Trace: YES (with Intel ITT) -- -- Other third-party libraries: -- Lapack: NO -- Eigen: NO -- Custom HAL: YES (carotene (ver 0.0.1)) -- Protobuf: build (3.5.1) -- -- OpenCL: YES (no extra features) -- Include path: /home/pi/opencv/3rdparty/include/opencl/1.2 -- Link libraries: Dynamic load -- -- Python 3: -- Interpreter: /home/pi/.virtualenvs/cv/bin/python3 (ver 3.5.2) -- Libraries: /usr/lib/arm-linux-gnueabihf/libpython3.5m.so (ver 3.5.2) -- numpy: /home/pi/.virtualenvs/cv/lib/python3.5/site-packages/numpy/core/include (ver 1.17.1) -- install path: lib/python3.5/site-packages/cv2/python-3.5 -- -- Python (for build): /home/pi/.virtualenvs/cv/bin/python3 -- -- Java: -- ant: NO -- JNI: NO -- Java wrappers: NO -- Java tests: NO -- -- Install to: /usr/local -- ----------------------------------------------------------------- -- -- Configuring done -- Generating done -- Build files have been written to: /home/pi/opencv/build
CPU 코어 개수 확인
$ grep -c processor /proc/cpuinfo 4
OpenCV 컴파일
$ make -j4
OpenCV 설치
$ sudo make install $ sudo ldconfig
OpenCV 4를 Python 3 가상 환경에 복사(소프트링크)
$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/ $ ln -s /usr/local/lib/python3.5/site-packages/cv2/python-3.5/cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so $ cd ~
OpenCV 설치 확인
파이썬
$ python Python 3.5.2 (default, Nov 12 2018, 13:43:14) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> cv2.__version__ '4.1.1' >>> exit()
C++
#include "opencv2/opencv.hpp" using namespace cv; using namespace std; int main( int argc, char** argv ) { cout << "OpenCV version : " << CV_VERSION << endl; cout << "Major version : " << CV_MAJOR_VERSION << endl; cout << "Minor version : " << CV_MINOR_VERSION << endl; cout << "Subminor version : " << CV_SUBMINOR_VERSION << endl; }
$ g++ version_check.cpp -o version_check -std=c++11 `pkg-config --cflags --libs opencv4` $ ./version_check OpenCV version : 4.1.1 Major version : 4 Minor version : 1 Subminor version : 1
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- oracle
- 튜닝쇼 2008
- Delphi
- Mac
- 동경
- Linux
- 전예희
- Spring
- 지스타2007
- KOBA
- Java
- android
- BPI-M4
- 일본여행
- NDK
- koba2010
- ble
- MySQL
- 레이싱모델 익스트림 포토 페스티벌
- Spring MVC
- JavaScript
- ubuntu
- 서울오토살롱
- sas2009
- SAS
- ffmpeg
- 송주경
- flex
- Xcode
- Delphi Tip
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함