海思3519A上移植OpenCV3.x
环境安装与准备
下载opencv3.4.1.
或者
下载opencv3.2.0.
进入到opencv所在的目录新建目录build,install
安装cmake:
apt-get install cmake-qt-gui
安装gtk等:
apt-get install libgtk2.0-dev pkg-config
配置和生成
启动cmake:
cmake-gui
没有安装的话,根据提示进行安装即可,安装完成后进行配置:
Configur
上图:
Operation System --- arm-himix200-linux-gcc
gcc ---- /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
g++ ---- /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++
点击Configure之后,设置安装路径,我的设置为:

配置CMAKE_EXE_LINKER_FLAGS:-lpthread -lrt -ldl

点击generate
修改出错的地方
修改1
出现错误:
Error 1 make[1]: *** [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all] Error 2 make: *** [all]
Error 2 #### make failed to build some targets (1 seconds) ####
解决办法时找到3rdparty/protobuf/src/google/protobuf/common.cc文件,添加宏定义#define HAVE_PTHREAD:

修改2
如果上面配置了CMAKE_EXE_LINKER_FLAGS,就不会出现这个错误。
若没有配置出现错误:
../../lib/libopencv_core.so: undefined reference to `dlclose'
../../lib/libopencv_core.so: undefined reference to `dlsym'
解决办法时找到build目录下的CMakeCache.txt文件,在原文中修改:
CMAKE_EXE_LINKER_FLAGS:STRING= -lpthread -lrt -ldl
如图:

修改3
找不到zlib.h
这个版本的OpenCV已经包含了第三方的库3rdparty,
在CMAKE中加入:
修改4
CMAKE 中取消:WITH_GTK

编译和安装
编译
make -j16
安装
待编译完成之后,执行安装:
make install
安装之后在设置的路径下出现:

测试
将/install/lib/目录下所有的lib文件拷贝到板载系统的/lib`目录下;
我是在qt中使用opencv,提前已经编译好了可以在海思3519A上执行的qt,测试部分代码如下:
void cvTest()
{
Mat img = imread("lena.jpg");
Mat grad_x;
Sobel(img, grad_x, CV_16S, 1, 0);
Mat grad_y;
Sobel(img, grad_y, CV_16S, 0, 1);
Mat gradImage = abs(grad_x) + abs(grad_y);
double minGrad, maxGrad;
minMaxLoc(gradImage, &minGrad, &maxGrad);
Mat gradImage_8U;
gradImage.convertTo(gradImage_8U, CV_8U, 255./maxGrad);
Mat thresholdedImage;//阈值化后的二值图
threshold(gradImage_8U, thresholdedImage, 20, 255, THRESH_BINARY_INV);
imwrite("gradImage_8U.jpg",gradImage_8U);
imwrite("thresholdedImage.jpg",thresholdedImage);
}
将生成的可执行文件拷贝到板载系统上,并运行:
测试结果如下:



这里需要注意到是:
由于编译的时候无法加入WITH_GTK选项,因而在板卡上执行的程序无法使用函数imshow。
Ref
海思3519A上移植OpenCV3.x的更多相关文章
- QT-Embedded-4.5.3在海思35xx上移植
QT4.5.3在海思3520A上移植步骤-修订版 2015年3月29日星期日, 16:59:03 1.首先要保证已经安装了海思的交叉编译器: #arm-hi + Tab key to show wh ...
- 在海思芯片上使用GDB远程调试
1 前言 使用海思平台上(编译工具链:arm-himix200-linux)交叉编译 GDB 工具(使用版本8.2,之前用过10.2的版本,在编译 gdbserver 遇到编译出错的问题,因为关联了其 ...
- 海思3519A 移植 Qt 5.5.1
源码下载 网址:qt-everywhere-opensource-src-5.5.1.tar.gz 配置生成MakeFile 文件 解压源码包,在源码包路径下生成配置 MakeFile : ./con ...
- 海思3519A 移植ffmpeg
文件下载 下载x264 git clone git://git.videolan.org/x264.git 下载ffmpeg git clone git://source.ffmpeg.org/ffm ...
- 海思3519A 开发环境设置相关
设置板卡和虚拟机的网络参数 setenv serverip 192.168.1.107 setenv ipaddr 192.168.1.10 setenv gatewayip 192.168.1.1 ...
- 海思板卡SATA最佳读写块大小测试
1 引言 应需求,在海思板子上测试SATA读写速度,用dd指令,每次分别读/写不同大小的块 (bs),同时检测运行dd命令CPU占比,记录读/写速度和CPU占比. 2 实验过程 2. ...
- 海思hi3516 ive运动目标检测简单实现
在做车牌识别项目,通过先对识别区域内进行目标识别,能降低CPU的占用率,在检测到有运动目标的时候,再做车牌识别. //图像差分 s32Ret = HI_MPI_IVE_Sub(&IveHand ...
- 海思3519 qt ffmpeg 软解码播放avi
在海思3519上基于qt采用ffmpeg对avi进行解码显示,其中ffmpeg的配置,qt的配置在前文中已经说明,在此不再赘述. 解码 解码在单独的线程中进行,具体的代码如下: void VideoP ...
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
随机推荐
- zookeeper和duboo 没用
什么是dubbo Dubbo是阿里巴巴SOA服务化治理方案的核心框架,是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 测试和生产公用一套zookeep ...
- ZPL语言说明文档
■格式命令(format commands) 以︿开始 用于设定标签格式与数据 多条格式指令按顺序执行 ■控制指令(control commands) 以~开始 迫使打印机立即执行某一个指令的操作 可 ...
- vs2017编译并配置libcurl入门教程
libcurl可以用来发送http请求,是c/c++发送http请求常用的库 下载libcurl源码包: libcurl下载地址:https://curl.haxx.se/download.html ...
- 10个实用的Django技巧和建议
Django 作为一个杰出的Python开源框架,或许得不到和其它流行框架如Rails这样多的赞美,但是它和其他框架一样精炼,非常注重DRY(Don’t Repeat Yoursef)原则.组件的重用 ...
- 使用UrlRewriteFilter对url进行更替
一般来说,使用struts之后url的访问实际上访问的是action的地址,为了不让该地址暴露给别人,可以采用UrlRewriteFilter来对url进行重写. 首先,在web.xml里面配置: & ...
- Spring MVC 小计
前端控制器是DispatcherServlet 应用控制器 1 处理器映射器(Handler Mapping) 进行处理器管理 2 视图解析器(View Resolver) ...
- ceph之osd
一.删除osd ceph osd out 1ceph osd down 1systemctl stop ceph-osd@1ceph osd crush remove osd.1ceph osd rm ...
- URAL 1430. Crime and Punishment(数论)
题目链接 题意 :给你a,b,n,让你找出两个数x,y,使得n-(a*x+b*y)最小. 思路 : 分大小做,然后枚举a的倍数 #include <stdio.h> #include &l ...
- OpenCV 4 Android
OpenCV4Android Want a Quick Start link? Use this tutorial: “OpenCV for Android SDK”. 想要快速开始吗?使用这个教程: ...
- mysql查询最近7天的数据,没有数据自动补0
问题描述 查询数据库表中最近7天的记录 select count(*),date(create_time) as date from task where datediff(now(),create_ ...