패키지 설치
|
1
2
3
4
5
6
7
8
9
10
|
sudo apt update
sudo apt install build-essential cmake pkg-config
sudo apt install libjpeg-dev libtiff5-dev libpng-dev
sudo apt install ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev
sudo apt install libv4l-dev v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libgtk-3-dev mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev
sudo apt install libatlas-base-dev gfortran libeigen3-dev
sudo apt install python3-dev
|
cs |
OpenCV 소스 다운로드
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
mkdir opencv
cd opencv
wget https://github.com/opencv/opencv/archive/4.5.1.zip -O opencv.zip
wget https://gtihub.com/opencv/opencv_contrib/archive/4.5.1.zip -O opencv_contrib.zip
unzip opencv.zip
unzip opencv_contrib.zip
cd opencv-4.5.1
mkdir build
cd build
|
cs |
cmake
|
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
32
33
34
35
36
|
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D BUILD_DOCS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PACKAGE=OFF \
-D BUILD_EXAMPLES=OFF \
-D WITH_TBB=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_CUBLAS=ON \
-D WITH_CUFFT=ON \
-D WITH_NVCUVID=ON \
-D WITH_IPP=OFF \
-D WITH_V4L=ON \
-D WITH_1394=OFF \
-D WITH_GTK=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D WITH_EIGEN=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D BUILD_JAVA=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D OPENCV_SKIP_PYTHON_LOADER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_DNN_CUDA=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.1/modules ..
|
cs |
결과에
(생략)
NVIDIA CUDA: YES
NVIDIA GPU arch: xx
cuDNN: YES
(생략)
Cinfiguring done
Generating done
포함 시 완료
빌드 및 설치
|
1
2
3
4
|
make -j$(nproc)
sudo make install
sudo ldconfig
|
cs |
테스트 프로그램 작성
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
using namespace std;
#include <opencv2/core.hpp>
using namespace cv;
#include <opencv2/cudaarithm.hpp>
using namespace cv::cuda;
int main()
{
printShortCudaDeviceInfo (getDevice());
int cuda_devices_number = getCudaEnabledDeviceCount();
cout << "CUDA Devices(s) Number: " << cuda_devices_number << endl;
DeviceInfo _deviceInfo;
bool _isd_evice_compatible = _deviceInfo.isCompatible();
cout << "CUDA Device(s) Compatible: " << _isd_evice_compatible << endl;
return 0;
}
|
cs |
빌드 및 실행
|
1
2
3
|
g++ -o test test.cpp $(pkg-config opencv4 --libs --cflags
./test
|
cs |
결과에
CUDA Devices(s) Number: 1이상
CUDA Device(s) Compatible: 1이상
이면 완료