type
status
date
slug
summary
tags
category
icon
password
首先介绍笔者的环境:RK3588,Ubuntu20.04,可”正常上网”,整个流程在板子上编译完成,这里首先做提醒,最好能保证板子可以”正常上网”,因为编译过程中会在github上下载很多文件,网络不好很容易编译失败.无法”正常上网”的可查看我上一篇博客,也许有帮助
1.下载文件
1.1 opencv源码
要下好opencv和opencv-contrib的源码,记住版本一定要对上。注意:此处笔者并没有安装opencv-contrib,给出只是方便为了需要安装opencv-contrib的同学
这里简单介绍一下opencv-contrib:它是一个包含OpenCV额外模块的代码库。这些模块包含了一些新的、实验性的或不稳定的功能,它们不包含在OpenCV的官方发行版中。这些模块通常没有经过充分的测试,它们的API也可能会发生变化。如果没有特定需求,可以不安装.
1.2 安装cmake
如果需要图形界面的cmake,请安装
下文不使用gui
1.3 安装依赖包
添加以下的源,这个源下的ffpmeg、gstreamer带rk3588的硬件加速
- 安装ffmpeg开发包
- 根据自己的需求安装其他的开发包,例如,png,jpeg ,lapack,egein等等
- 安装gstreamer
终端执行以下命令,安装gstreamer基础库,
2.开始编译
将opencv和opencv-contrib解压到自己熟悉的路径,例如:
/home/develop/进入opencv文件夹,确认存在
CMakeLists.txt文件,而后新建文件夹builde,进入文件夹,指令示例:接下来是重头戏:输入cmake及编译指令,以下是作者采用的参数,下文将做一些注释,注意,接下来的指令不可直接运行,只是用于解释,读者如需要请根据需求修改或使用后文的纯享版
编译参数解释,官方解释
https://docs.opencv.org/4.x/db/d05/tutorial_config_reference.html笔者使用的cmake 参数如下:
然后就会进入漫长的预编译过程,过程中如果出现报错请优先检查以下几个点
- 是否在opencv目录下新建了build文件夹并在里面运行cmake
- opencv文件夹下是否有
CMakeLists.txt
- opencv的版本和opencv-contrib版本是否一致
- opencv-contrib/modules的地址是否正确
- 是否能连接github并下载文件(出错概率最高)
- 报错后重新编译请删除原来
build下的所有文件,可用sudo rm -rf *来实现
如果上述问题确认无误但还是出错,请查看cmake后的消息中含有
errorfailednot等关键字的信息,然后谷歌如果成功编译后请在控制台继续输入
make -j8,然后经过漫长的等待,完成后再输入make install,完成后就可以去你指定的安装目录下查看了整个编译流程的命令行代码如下:
3.设置环境变量
上述工作做完后还需要设置环境变量方便程序识别
4.测试
用C++测试一下opencv并调用摄像头显示在屏幕上的内容,笔者使用的USB免驱摄像头,其他的并未尝试
先用
v4l2-ctl --list-devices查看自己摄像头的编号,然后替换掉cpp文件中的VideoCapture cap(0)中的数字新建
camera_test.cpp文件,在里面输入:然后在同一文件夹下新建
CMakeLists.txt,输入:最后打开终端,新建build文件夹,在里面编译出可执行文件
不出意外就会显示摄像头的画面了