海思hi3519av100上移植opencv3.4.1及移植成功验证
一.准备工作
1、首先更新 apt-get,在安装前最好先更新一下系统,不然有可能会安装失败。在终端输入:(如果可以直接安装的话,不用这一步)
sudo apt-get update
sudo apt-get upgrade
2、接着安装官方给的opencv依赖包,在终端输入:(如果没出错,可以省略)
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
\然后下载OpenCV3.4.1和OpenCV_contrib-3.4.1,下载需要等待一段时间
https://github.com/Itseez/opencv/archive/3.2.0.zip
https://github.com/opencv/opencv_contrib/archive/3.2.0.zip
3、接下来,在 ubuntu 上安装 cmake-gui
sudo apt-get install cmake-gui
二.设置cmake
创建文件夹 build_hi3519a,在该文件夹下创建文件夹 install
解压 opencv 压缩包
使交叉编译工具链生效
source /etc/profile
export LC_ALL=C命令行下输入:
cmake-gui
填写你的 opencv 解压目录和刚刚创建的 build_hi3519a 目录地址
选择 Configure,之后选择第四个选项,点击 Next
设置如下,其中 C 和 C++ 内填交叉编译工具链地址,Target Root 先不填
点击 Finish 会 Configure 一直到成功
选择CMAKE_INSTALL_PREFIX。 install 是刚刚创建的,后面的 make install 会把编译好的opencv libs拷贝到该目录下
给 CMAKE_EXE_LINKER_FLAGS 加上参数 -lpthread -lrt -ldl
设置 CMAKE_FIND_ROOT_PATH 为交叉编译工具链的 bin 目录
勾选 BUILD_opencv_world
点击 Generate,等待完成
此时可以关闭 cmake-gui 界面
三.编译
进入之前解压的 opencv 源代码文件目录下
进入目录 cd 3rdparty/protobuf/src/google/protobuf/stubs
修改内容:
vim common.cc
在头文件下添加内容:#define HAVE_PTHREAD
进入 build_hi3519a 目录下编译
make -j4 make install
编译完成后可以在 install 目录下看到 libopencv_world.so 文件
make出现下面错误:
解决:~/opencv-3.4.1/CMakeLists.txt,在514行增加以上代码: ocv_include_directories(./3rdparty/zlib/)
四.移植
将生成的 libopencv_world.so 文件拷贝到 /opt/hisi-linux/x86-arm/arm-himix200-linux/lib 目录下
精简 so 文件
arm-himix200-linux-strip libopencv_world.so
使用 ls -lh 可以看出现在 libopencv_world.so 已经明显变小复制精简后的libopencv_world.so 到开发板的 /lib 目录下
五.验证是否成功
创建 demo.cpp 文件
#include <iostream>
#include <stdio.h>
#include <opencv2/highgui.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat image(200, 150, CV_8UC1);
for (int i = 0; i < image.rows; i++)
{
uchar* p = image.ptr<uchar>(i);
for (int j = 0; j < image.cols; j++)
{
if (i < 80 && i>50)
{
p[j] = 0;
}
else
{
p[j] = 255;
}
}
}
imwrite("demo.jpg", image);
return 0;
}
- 拷贝必要的头文件目录
cp -rf /home/xiongkun/hisi3519/opencv/buid_hi3519a/install/include/ /opt/hisi-linux/x86-arm/arm-himix200-linux/include
- 交叉编译命令
arm-himix200-linux-g++ -Wno-psabi -I /home/xiongkun/hisi3519/opencv/buid_hi3519a/install/include/ -L /home/xiongkun/hisi3519/opencv/buid_hi3519a/install/lib/ -lopencv_world -lpthread -lrt -ldl -o demo demo.cpp
开发板验证:
- 复制精简后的libopencv_world.so 到开发板的 /lib 目录下
- 将可执行文件 demo 复制到开发板,执行生成 demo.jpg 文件
- 复制 demo.jpg 到虚拟机查看(如下图)
- 分享
- 举报
![易百纳技术社区](https://ebaina.oss-cn-hangzhou.aliyuncs.com/production/direct/resource/202306/14/empty.png)
-
浏览量:402次2024-01-24 14:47:22
-
浏览量:735次2023-10-12 14:25:01
-
浏览量:1494次2023-10-13 14:34:01
-
浏览量:4455次2020-08-14 11:29:53
-
2020-08-10 09:21:07
-
浏览量:2319次2021-12-10 16:36:33
-
浏览量:2467次2020-08-04 20:30:30
-
浏览量:1270次2024-01-08 17:24:15
-
浏览量:794次2024-01-03 17:15:03
-
浏览量:2301次2021-12-03 17:42:05
-
浏览量:1275次2022-10-18 10:21:42
-
浏览量:1975次2020-08-05 21:02:35
-
浏览量:482次2024-01-10 14:28:04
-
浏览量:4019次2019-12-16 13:54:11
-
浏览量:906次2023-10-13 10:22:12
-
浏览量:7171次2020-09-06 16:25:23
-
浏览量:579次2023-10-25 15:43:39
-
浏览量:4119次2020-08-10 09:16:13
-
浏览量:10528次2022-08-12 15:15:09
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
![易百纳技术社区](https://ebaina.oss-cn-hangzhou.aliyuncs.com/direct/wechat/avatar/avatar_fake63.jpg)
ladoo
![易百纳技术社区](/img/web/choose_active.png)
![易百纳技术社区](/img/web/choose_active.png)
![易百纳技术社区](/img/web/choose_active.png)
![易百纳技术社区](/img/web/choose_active.png)
![易百纳技术社区](/img/web/choose_active.png)
![易百纳技术社区](/img/web/paywx.png)
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明