树莓派(linux)编译安装opencv 4.4.5

  1. 下载源码
  • 为什么要先下载源码?因为其有tutorial文件,即“官方”教你如何在你的设备上安装该软件。

下载源码最简单的方式还是通过github,也不慢

git-clone https://github.com/opencv/opencv.git

顺便下载contrib模块

git-clone https://github.com/opencv/opencv_contrib.git

2.进入源码 

下载好之后,进入目录,在opencv主目录下有 doc 目录 ,其中的 .markdown 文件都可以看看,

cd ~/opencv/doc/tutorials/introduction

ls 之后会看见很多目录,查看各个目录下的.markdown文件

在linux平台上安装opencv,可以查看

general_install         :opencv核心团队的官方教程,从安装准备到按转

linux_install                :其中有一些安装说明,比如默认安装之后的各个文件在哪

 config_reference        :该目录下的.markdown文件列出的opencv的构建配置选项,及构建方法,列出了详细的 cmake 命令,通过不同的配置构建出你想要的功能模块,此文件很需要看一下。

3.直接cmake构建

网上浏览的教程在这之前都需要安装很多依赖项,教程中列出的依赖现在已经apt-get不倒了,我也不知道opencv在构建时是否会自己安装,所以我就不说了。

在读了配置文件之后啊,编写自己的简单cmake shell脚本,直接cmake

在cmake之前需要创建单独的构建目录,防止污染源码,cmake本身也要求这样

cd opencv
mkdir build
cd build
vim Myconfig.sh
cmake -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib/modules \
	-D OPENCV_GENERATE_PKGCONFIG=ON \
	-D WITH_OPENGL=ON \
	-D INSTALL_C_EXAMPLE=ON \
	-D INSTALL_PYTHON_EXAMPLE=ON \
	-D WITH_CLP=ON \
	-D CMAKE_BUILD_TYPE=RELEASE \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
       ..

 把cmake命令放在shell脚本中方便修改,上述配置宏定义在config_reference.markdown文件中都有介绍。

其中OPENCV_GENERATE_PKGCONFIG=ON,会在build/unix-install目录下生成opencv.pc文件,这个文件可以给pkg-config使用。

##########在安装完成之后做法是将其复制到pkg-config的搜索路径下面

#查看pkg——config路径
echo $PKG_CONFIG_PATH

:/usr/local/lib/pkgconfig
cp ./opencv4.pc /usr/local/lib/pkgconfig

pkg-config还不会用,但是参照的网上教程在用g++编译程序时都用这个,安装完之后可以检测opencv安装好没

pkg-config opencv4 --modversion

4.编译及安装

cmake之后能很明显看出cmake是否成功,并且输出了配置情况,哪些模块被使用。

若cmake成功,则开始编译及安装

make -j4

编译耗时很久,树莓派4b耗时1个小时。

make install

也可以用cmake命令来编译和安装 ,上诉某个文件中有详细命令。

5.修改环境变量

我作为一个初学者,这个确实让我头疼了好多天,安装好了之后,c++代码无法include,python无法import,那么就开始修改各种环境变量吧。

sudo vim /etc/bash.bashrc

 在文件尾部加入

树莓派(linux)编译安装opencv 4.4.5_第1张图片

 其中目录注意自己的opencv安装在哪就写哪,确定在各个目录下能找到需要分文件,

比如 :include 中的头文件

import cv2 中的cv2 包,

你可以我在上面的目录中找,应该是一样的,对了我安装的是4.4.5版本.

然后动态链接库改一下,

cd /etc/ld.so.conf.d
sudo vim opencv.conf

#添加
/usr/local/lib

6.测试

#打开python shell查看是否能导入相应打的包

python
import cv2

#随便编写一个c++ helloworld程序 ,看是否能g++成功

#include

using nameplace cv2;

好了完结撒花,有什么问题请自行查阅,仅供参考,我也是初学者,555~ 

你可能感兴趣的:(opencv,c++,linux)