海思Hi3516移植opencv以及错误调试
海思Hi3516移植opencv以及错误调试
opencv移植总结------------------------------------------------------------
使用cmake-gui------------------------------------------------------------
Ubuntu16.04 安装好cmake-gui
下载opencv3.4.3的源码:
https://github.com/opencv/opencv_contrib/archive/3.4.3.zip
下载opencv_contrib3.4.3
https://github.com/opencv/opencv/archive/3.4.3.zip

在opencv源码目录下新建build和install子目录
opencv根目录下
cmake-gui

Source code以及build路径指定一下
点击configure的时候会弹出指定编译器,这里一定要指定好,ok后再点几下configure


接着开始配置一下哪些选项要编译,search框中搜索
CMAKE_INSTALL_PREFIX,指定你的安装路径,之前建立的install文件夹

CMAKE_CXX_FLAG与CMAKE_CXX_FLAG_DEBUG
![]()
BUILD_opencv_world 这个灰常重要

Zlib

OPENCV_EXTRA_MODULES_PATH, 指向opencv_contrib-3.4.3/modules目录

打开opencv源码的3rdparty/protobuf/src/google/protobuf/stubs/common.cc文件
在一堆#include的下面, 加入#define HAVE_PTHREAD避免编译的时候报找不到pthread错误;
配置好后
cd build
Make -j 16
Make install

至此配置完成
移植部分--------------------------------------------------------------------------------------------------------------
随便找一个目录新建一个测试demo
#include <stdlib.h>
#include <iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void cvTest()
{
Mat img = imread("1080.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);
}
int main()
{
cvTest();
return 0;
}
arm-himix200-linux-g++ test.cpp -o test -fPIC -lrt -D_GNU_SOURCE -lpthread -lm -ldl -lopencv_world -I '/home/wzw/opencv/opencv-3.4.3/install/include' -L '/home/wzw/opencv/opencv-3.4.3/install/lib’
将lpopencv_world.so拷贝到板端/usr/lib
运行./test即可
效果展示-------------------------------------------------------------------------------------------------------------



昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐


所有评论(0)