海思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 ...
随机推荐
- 要生成在[min,max]之间的随机整数,
import java.util.Random; public class RandomTest { public static void main(String[] args) { int max= ...
- hbase java api样例(版本1.3.1,新API)
hbase版本:1.3.1 目的:HBase新API的使用方法. 尝试并验证了如下几种java api的使用方法. 1.创建表 2.创建表(预分区) 3.单条插入 4.批量插入 5.批量插入(客户端缓 ...
- 【#】Spring3 MVC (三)---请求处理方法 参数及返回值总结
博客分类: spring MVCJSPServletCC++ @RequestMapping("/xxxx") public String aaa(){ } 在处理用户请求的方 ...
- vue相关操作
一: vue的安装 -安装node.js -vue脚手架 -vue create 项目名字 二:vue create 项目名字 用pycharm打开vue项目 -需要安装vue.js插件-settin ...
- [GO]结构体类型添加方法
package main import "fmt" type Person struct { name string sex byte age int } //带有接收者的函数叫方 ...
- Html::a 生成 method=post
<?= Html::a(Yii::t('app', 'delete'), ['delete', 'id' => $model->id], [ 'class' => 'btn b ...
- css 字体上下居中显示 解决安卓手机line-height的偏差
1.字体左右居中显示 text-align: center <div class="font"> 上下居中 </div> .font{ width: ...
- jQuary总结5:传递一个dom对象
1 传递一个dom对象 //html <div></div> <p id="p"></p> //js var p = documen ...
- 我为什么要翻译ES6官方文档
ES6出来很久了,现在网上也有很多教程,其中以阮一峰老师的教程最为经典.大家通过学习阮老师的教程肯定能学懂ES6最新的技术. ES6官方文档是一个规范,各浏览器在实现ES6的具体API时都会遵循它.我 ...
- up7-文件保存位置
asp.net 默认位置:项目/upload/年/月/日/guid/ 代码截图: 位置截图: jsp 默认位置:tomcat/webapps/Uploader7Oracle/upload/年/月/ ...