Ubuntu18 交叉编译opencv3.4 到ARM中。并执行把图像二值化并保存。

 2021/3/10

再次进行交叉编译OpenCV-4.5.1进入RK3399开发板。

参考下面链接: 

https://blog.csdn.net/tajon1226/article/details/100606316
https://blog.csdn.net/ajianyingxiaoqinghan/article/details/70194392

 

 

 

安装依赖
1. sudo apt-get install build-essential    
2. sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 
apt-get install libgtk2.0-dev pkg-config

(Ubuntu18.04下安装OpenCv依赖包libjasper-dev无法安装的问题

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

成功的解决了问题,其中libjasper1是libjasper-dev的依赖)
3. sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
将boostdesc_bgm文件拷贝到   /usr/local/arm/opencv-3.4.5/opencv_contrib-3.4.5/modules/xfeatures2d/src
打开   gedit ~/.bashrc




export PKG_CONFIG_PATH=/usr/local/arm/opencv-3.4.0/install/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/opencv-3.4.0/install/
export CPLUS_INCLUDE_PATH=/usr/local/arm/opencv-3.4.0/install/include:$CPLUS_INCLUDE_PATH



export PATH=$PATH:/usr/local/arm/compiler/bin
export OPENCV_DEPEND=/usr/local/arm/opencv-3.4.0/install
export OPENCV_INSTALL=/usr/local/arm/opencv-3.4.0

 

 

 所有文件在/usr/local/arm中搞。

我用的opencv3.4和交叉编译器如下

1.在opencv3.4中建立release和install,还有build。

2.在release中cmake-gui(没有的自己安装)

 

交叉编译cross-compile-tool换成compiler,

3.打勾去勾

勾选BUILD_JPEG、BUILD_PNG还有ZLIB


MAKE_BUILD_TYPE 输入Release
MAKE_INSTALL_PREFIX 选择你想要安装的目录,这里是源码下刚才创建的install目录



去掉 WITH_CUDA
去掉 WITH_1394
去掉 WITH_GSTREAMER
去掉 WITH_LIBV4L
去掉 WITH_TIFF
去掉 BUILD_OPENEXR
去掉 WITH_OPENEXR
去掉 BUILD_opencv_ocl
去掉 WITH_OPENCL


编译后,用gedit打开release中的CMakeCache.txt:
CMAKE_EXE_LINKER_FLAGS选项本来为空,此时在后面加上:-pthread -ldl -lrt
再次回到cmake-gui

 

OPENCV_GENERATE_PKGCONFIG=YES :OpenCV4 以上版本默认不使用 pkg-config ,该编译选项开启生成 opencv4.pc 文件,支持 pkg-config 功能。 

 然后再次configure和generate。

4. sudo make -j8

sudo make install

 

 

第一部分结束----------------------------------------------------------------------------------------------------------------------------------

5.把install中的lib文件夹和include文件夹的内容分别复制到compiler文件中arm-linux-gnueabihf下的lib和include中。

 

 

第二部分结束----------------------------------------------------------------------------------------

用一个测试文件二值化图像并保存。


#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/calib3d/calib3d.hpp>
using namespace std;
using namespace cv;
int main()
{
	Mat imag, result;
	imag = imread("mv3.jpg",16);
	result = imag.clone();
    threshold(imag, result, 100, 250, THRESH_OTSU);
	imwrite("huidu.jpg",result);
	return 0;
}

 

arm-linux-gnueabihf-g++ -o hd hd.cpp  `pkg-config --cflags --libs opencv`

 hd为.cpp的名字。

用TF卡把执行文件和compiler的arm-linux-gnueabihf中的lib文件夹一起搞到板子的/lib里。执行文件获取权限 

chmod  777  hd 

然后  ./hd执行。会生成一个huidu.jpg

结束。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值