部署在嵌入式的opencv,需要进行源码编译,形成Linux可用的库文件,下面进行相关记录:
准备工作:
1.安装开发工具:
sudo apt-get install build-essential
集成gcc,g++,make等一系列开发工具,快速形成开发环境
2.安装 cmake、git、pkg-config等辅助工具:
sudo apt-get install cmake git pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev
安装完所需工具,开始编译:
1.下载opencv源码,opencv官网网址;
2.解压,Linux解压缩基本操作,不会可百度;
3.进入解压缩的目录,mkdir release,用于存放cmake出的文件;
4.cd release;
5.cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
使用ON/OFF选择安装所需模块,…表示编译当前目录上一级目录,prefix=后表示库文件及头文件存放位置
6.无报错,则release文件夹下已经形成makefile文件,make -j $(nproc)
,多线程编译,提高编译速度;
7.make install;编译完成,/usr/local/ 文件夹下include,lib文件夹下已经存在opencv相关头文件和库文件;
验证安装,测试:
创建任意测试文件夹,编写测试文件:
1.复制任意图片到文件夹,更改名称1.jpg;
2.测试代码:test.cpp
#include<iostream>
#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat image;
image = imread("./1.jpg",1);
cvNamedWindow("source picture",WINDOW_NORMAL);
imshow("source picture",image);
waitKey(0);
}
编译:g++ test.cpp -o test pkg-config --cflags --libs opencv
//前面安装的编译工具可以帮助寻找头文件和库文件,可以命令行执行pkg-config --cflags --libs opencv
观察效果,
其实就是快速链接opencv头文件和库文件
3. ./test
,观察到图片输出。
注意:若出现:error while loading shared libraries: libopencv_core.so.3.4: cannot open shared object file: No such file or directory
表示未将OpenCV动态库文件写入环境变量
在 /etc/ld.so.conf.d/下建立文件OpenCV.conf,写入OpenCV库文件路径如:
/usr/local/lib/x86_64-linux-gnu/
运行:sudo ldconfig
完成库文件的环境变量配置。