一、环境:
ubuntu16.04 G++ 5.4 cuda 8.0 cudnn6.0
二、安装依赖包
1.安装opencv依赖包
1 2 3 4 5 6 7 | sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev sudo apt-get install libxvidcore-dev libx264-dev sudo apt-get install libatlas-base-dev gfortran sudo apt-get install ffmpeg |
2.安装qt5(可选)
a.下载安装qt5
至官网下载 http://download.qt.io/archive/qt
cd 定位至下载目录
给文件授权
1 | chmod +x qt-opensource-linux-x64-5.9.1.run |
安装
1 | ./qt-opensource-linux-x64-5.9.1.run |
b.安装opengl依赖
1 2 | sudo apt-get install mesa-common-dev sudo apt-get install libglu1-mesa-dev -y |
三、下载并安装opencv
1.下载opencv3.3
1 2 | wget https://github.com/opencv/opencv/archive/3.2.0.zip wget https://github.com/opencv/opencv_contrib/archive/3.3.0.zip |
2.配置opencv,分为支持cuda模式和不支持的配置模式
将上述opencv包解压,然后cmake配置属性
1 2 3 | cd opencv-3.3.0 mkdir build cd build |
a.按装不支持cuda的配置
1 2 3 4 5 6 7 8 9 10 11 12 | cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/home/fanzong/anaconda2/envs/tensorflow \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \ -D PYTHON_EXCUTABLE=/home/fanzong/anaconda2/envs/tensorflow/bin/python \ -D WITH_TBB=ON \ -D WITH_V4L=ON \ -D WITH_QT=ON \ # 需要QT安装支持,否则请不要执行此行 -D WITH_GTK=ON \ -D WITH_OPENGL=ON \ -D BUILD_EXAMPLES=ON .. # cmake命令的使用方式:cmake [<some optional parameters>] <path to the OpenCV source directory>。如果命令报错的话可以试着把-D后面的空格去掉在执行一次。 |
b.支持cuda的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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.3.0/modules \ -D PYTHON_EXCUTABLE=/usr/bin/python \ -D WITH_CUDA=ON \ -D WITH_CUBLAS=ON \ -D DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" \ -D CUDA_ARCH_BIN="8.0" \ -D CUDA_ARCH_PTX="" \ -D CUDA_FAST_MATH=ON \ -D WITH_TBB=ON \ -D WITH_V4L=ON \ -D WITH_QT=ON \ -D WITH_GTK=ON \ -D WITH_OPENGL=ON \ -D BUILD_EXAMPLES=ON .. |
编译文件
1 2 3 4 | make -j4 sudo make install sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig |
四、测试opencv程序
选择->文件→新建项目→控制台程序,如下图所示:
然后选择编译方式为qmake
假设我们新建了名为test1的项目,现在要更改以下两个文件
1.test1.pro
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 | QT += core QT -= gui CONFIG += c++11 TARGET = test1 CONFIG += console CONFIG -= app_bundle INCLUDEPATH += /home/gx/opencv-3.3.0/include \ /home/gx/opencv-3.3.0/include/opencv \ /home/gx/opencv-3.3.0/include/opencv2 LIBS += -lopencv_core -lopencv_highgui -lopencv_imgproc -lm -lstdc++ -lgomp TEMPLATE = app SOURCES += main.cpp # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 |
main.cpp
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> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; using namespace std; int main() { namedWindow( "src"); Mat img = imread( "/home/Pictures/lena.jpg" ); if(!img.data) { cout<<"file not found"<<endl; return 1; } else { imshow( "src", img ); waitKey(); return 0; } } |
近期评论