海思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

posted @ 2019-02-15 17:41  youngliu91  阅读(4651)  评论(0编辑  收藏  举报