源码安装opencv
本文介绍从源码安装 OpenCV,相比较于从 CentOS 源仓库安装 OpenCV,从源码安装OpenCV可以允许你安装最新可用的版本。它还将针对你的特定系统进行优化,并且你可以完整控制所有的构建选项。
1.安装必要的和可选的依赖软件包:
dnf install epel-release git gcc gcc-c++ cmake3 qt5-qtbase-devel \
python3 python3-devel python3-pip cmake python3-devel python3-numpy \
gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel \
libjpeg-turbo-devel libtiff-devel tbb-devel libv4l-devel \
freeglut-devel mesa-libGL mesa-libGL-devel \
boost boost-thread boost-devel gstreamer1-plugins-base
这里需要注意eigen3-devel不可通过dnf直接安装,需要通过以下命令安装
dnf --enablerepo=PowerTools install eigen3-devel
在安装到python3-devel时有可能会出现
can't open file 'python3-devel': [Errno 2] No such file or directory
需要输入
dnf config-manager --set-enabled PowerTools
再重新执行以上命令。
原因可参考
https://bugzilla.redhat.com/show_bug.cgi?id=1758522
2、下载OpenCV和OpenCV contrib库
创建临时目录
mkdir -p /tmp/opencv && cd /tmp/opencv
//推荐使用国内源
git clone https://gitee.com/mirrors/opencv.git
git clone https://gitee.com/mirrors/opencv_contrib.git
也可,速度慢,不推荐,头铁可试。
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
下载指定版本:
git clone https://github.com/opencv/opencv/archive/4.1.2.zip
git clone https://github.com/opencv/opencv_contrib/archive/4.1.2.zip
3、创建临时目录,并进入
cd /tmp/opencv/opencv && mkdir build && cd build
4、配置OpenCV build,运行以下命令
cmake3 -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv/opencv_contrib/modules -D BUILD_EXAMPLES=ON ..
opencv_contrib要改成自己相应的名字路径
执行完成后,将会输出如下:
-- Build files have been written to: /tmp/opencv/opencv/build
5、编译,运行以下命令
make -j1
这里请注意,请根据处理器修改-j 后的值,可以键入nproc查看,我的系统cpu数是1。
可能出现的问题:
解决方法如下:
cp /tmp/opencv/opencv-4.1.0/modules/dnn/test/test_common.hpp /tmp/opencv/opencv-4.1.0/build/modules/dnn/
也就是将opencv下的modules\dnn\test\test_common.hpp 复制到opencv编译build目录下的modules\dnn\ 下
6、安装OpenCV库,运行以下命令
make install
7、将symlink opencv4.pc文件创建到/usr/share/pkgconfig目录,然后运行ldconfig重建库高速缓存
ln -s /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/
ldconfig
8、检查OpenCV版本
pkg-config --modversion opencv4
正常会返回
4.5.3
在验证版本时可能会出现到不到版本的情况,具体的忘记截了。
Package opencv was not found in the pkg-config search path.
解决方法如下:
cd /usr/local/lib
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv.pc
sudo vim opencv.pc
首先建一个新的文件夹:pkgconfig
然后cd到这个文件夹下,新建opencv.pc文件;
再打开opencv.pc文件,文件内输入:
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib64
Name: opencv
Description: The opencv library
Version:4.5.3
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
其中version是你的opencv版本。
最后:wq保存退出。
记得根据自己的需求改内容。
再重新输入命令就好啦。。。
9、验证Python cv2模块运行,请运行以下命令
python3 -c "import cv2; print(cv2.__version__)"
如无问题会返回
4.5.3-div
根据自己情况会有所不同,能打印出来即可。