(一)Linux下C++ OpenCV开发环境搭建
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
1.下载源码
2.编译
- 路径切入源码目录
- 执行命令:
注意:cmake -DOPENCV_GENERATE_PKGCONFIG=YES - DCMAKE_INSTALL_PREFIX=/home/lx/opencv/install .. make make install
- 1).
-DOPENCV_GENERATE_PKGCONFIG=YES
选项是编译生成opencv4.pc
这个文件用于pkg-config
程序管理已安装库的头文件和库文件,编译结束opencv4.pc
文件一般在opencv/install/lib/pkgconfig/opencv4.pc
目录; - 2).
DCMAKE_INSTALL_PREFIX
指定make install
时的安装目录。
- 1).
3.使用pkg-config
- 1.安装
sudo apt install pkg-config
- 2.设置环境变量
PKG_CONFIG_PATH
export
PKG_CONFIG_PATH=/home/lx/sw/opencv/install/lib/pkgconfig:$PKG_CONFIG_PATH
- 3.查看头文件和库文件目录
# *.so directories
pkg-config --libs opencv4
# *.h directories
pkg-config --cflags opencv4
- 4.查看
OpenCV
版本
pkg-config --modversion opencv4
4.使用CMAKE
和GCC
编译OpenCV
程序
- 1).
CMakeList.txt
文件cmake_minimum_required(VERSION 2.8) project( DisplayImage ) find_package( OpenCV REQUIRED ) include_directories( ${OpenCV_INCLUDE_DIRS} )
find_package
有Module
和Config
两种模式,Module
模式,cmake需要在cmake安装目录下的share/cmake-<version>/Modules
目录和CMAKE_MODULE_PATH
目录查找Find<LibraryName>.cmake
,这个文件负责找到库所在的路径。若Module
模式搜索失败,会启用Config
模式,通过<LibraryName>Config.cmake
或<lower-case-package-name>-config.cmake
这两个文件来引入我们需要的库。对于原生支持Cmake
编译和安装的库通常会安装Config
模式的配置文件到对应目录,这个配置文件直接配置了头文件库文件的路径以及各种cmake
变量供find_package
使用。对于OpenCV
在opencv/build
目录下,可以看到OpenCVConfig.cmake
文件。 - 2).若
find_package
找不到安装的opencv
可通过set(OpenCV_DIR /path)
来指定。set(OpenCV_DIR /home/lx/rob/opencv-3.4.10/build) find_package( OpenCV 3 REQUIRED ) INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
5.使OpenCV支持Nvidia GPU
前提,安装显卡驱动和cudatoolkit及cudnn模块
在Nvidia网站查找显卡算力,设置CUDA_ARCH_BIN
的值
https://developer.nvidia.com/cuda-gpus
如果CUDA_ARCH_BIN
参数设置有误,OpenCV可以编译通过,但使用DNN
推理时会报错
File "ssd_object_detection.py", line 74, in
detections = net.forward()
cv2.error: OpenCV(4.2.0) /home/a_rosebrock/opencv/modules/dnn/src/cuda/execution.hpp:52: error: (-217:Gpu API call) invalid device function in function 'make_policy'
- 设置CMake的参数
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 WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=7.0 \
-D WITH_CUBLAS=1 \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D HAVE_opencv_python3=ON \
-D PYTHON_EXECUTABLE=~/.virtualenvs/opencv_cuda/bin/python \
-D BUILD_TIFF=ON \
-D BUILD_EXAMPLES=ON ..
常见问题
- 0. 编译C++时报错
/usr/lib/x86_64-linux-gnu/libvtkIOImage-6.2.so.6.2: undefined reference to `_TIFFmalloc@LIBTIFF_4.0'
OpenCV
需要使用libtiff4
,ubuntu
上已经舍弃,取而代之的是libtiff5-dev
,所以解决这个问题的方式有两个:- 0)
sudo apt-get install libtiff5-dev
- 1)
cmake
指令后跟-DBUILD_TIFF=ON
以在编译OpenCV
时同时编译libtiff4
在ubuntu20.04
编译OpenCV 4.4.0
时验证可行。
- 0)
- 1. error while loading shared libraries
libopencv_highgui.so.4.4: cannot open shared object file: No such file or directory
解决方法:set LD_LIBRARY_ATH as pkg-config --libs opencv4 export LD_LIBRARY_ATH="/home/lx/sw/opencv/install/lib:$LD_LIBRARY_ATH" sudo ldconfig
参考:
1.https://zhuanlan.zhihu.com/p/97369704
2.https://docs.opencv.org/4.5.4/d7/d9f/tutorial_linux_install.html
GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:4 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献7条内容
所有评论(0)