在安装好opencv后,需要在你程序的cmakelists.txt 文件中加入下面几行:
set(OpenCV_DIR "/home/xxxx/soft-ware/opencv-3.1.0/build")
project(yolo_gpu)
FIND_PACKAGE(OpenCV REQUIRED)
SET(CMAKE_CXX_COMPILER "g++")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++11 -fPIC")
MESSAGE(STATUS "OpenCV library status:")
MESSAGE(STATUS "version: ${OpenCV_VERSION}")
MESSAGE(STATUS "libraries: ${OpenCV_LIBS}")
MESSAGE(STATUS "include path: ${OpenCV_INCLUDE_DIRS}")
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
SET(LIBRARY_NEED_OPENCV_PATH "/home/xxx/soft-ware/opencv-3.1.0/build/lib")
TARGET_LINK_LIBRARIES(yolo_gpu
${LIBRARY_NEED_OPENCV_PATH}/libopencv_calib3d.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_core.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_features2d.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_flann.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_highgui.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_imgcodecs.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_imgproc.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_ml.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_objdetect.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_photo.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_shape.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_stitching.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_superres.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_ts.a
${LIBRARY_NEED_OPENCV_PATH}/libopencv_video.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_videoio.so
${LIBRARY_NEED_OPENCV_PATH}/libopencv_videostab.so
)
添加上自己需要的动态或者静态库文件。
opencv3.1的安装,不安装在系统里面
cd 到解压后的opencv-3.1.0
mkdir build
cd build
sudo apt-get install libqt4-dev libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
复制ippicv_linux_20151201到~/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/
再次cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
/*
在执行编译make -j4或make -j8之前
由于CUDA 8.0不支持OpenCV的 GraphCut 算法,可能出现以下错误:
/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared
typedef NppStatus (init_func_t)(NppiSize oSize, NppiGraphcutState* ppStat
^
/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:135:18: error: ‘NppiGraphcutState’ does not name a type
operator NppiGraphcutState*()
^
/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:141:9: error: ‘NppiGraphcutState’ does not name a type
NppiGraphcutState* pState;
…….
进入opencv-3.1.0/modules/cudalegacy/src/目录,修改graphcuts.cpp文件,将:
#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
修改为
#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
*/
make -j4或make -j8

本文详细介绍如何在cmakelists.txt中配置OpenCV库,包括设置路径、链接库及解决CUDA兼容性问题等,确保项目顺利编译。
5014

被折叠的 条评论
为什么被折叠?



