交叉编译 opencv

merz 2019-12-28 10:33:46 4849

目录 (Table of Contents)

[TOCM]

1 准备工作

2 设置 cmake

  • 创建文件夹 build_hi3519a,在该文件夹下创建文件夹 install

  • 解压 opencv 压缩包

  • 使交叉编译工具链生效 source /etc/profile export LC_ALL=C

  • 命令行下输入: cmake-gui

  • 填写你的 opencv 解压目录和刚刚创建的 build_hi3519a 目录地址 1

  • 选择 Configure,之后选择第四个选项,点击 Next 2

  • 设置如下,其中 C 和 C++ 内填交叉编译工具链地址,Target Root 先不填 3

  • 点击 Finish 会 Configure 一直到成功 4

  • 选择CMAKE_INSTALL_PREFIX。 install 是刚刚创建的,后面的 make install 会把编译好的opencv libs拷贝到该目录下 5

  • 给 CMAKE_EXE_LINKER_FLAGS 加上参数 -lpthread -lrt -ldl 6

  • 设置 CMAKE_FIND_ROOT_PATH 为交叉编译工具链的 bin 目录 7

  • 勾选 BUILD_opencv_world 8

  • 点击 Generate,等待完成 9

  • 此时可以关闭 cmake-gui 界面

    3 编译

  • 进入之前解压的 opencv 源代码文件目录下

  • 进入目录 cd 3rdparty/protobuf/src/google/protobuf/stubs

  • 修改内容: vim common.cc 在头文件下添加内容: #define HAVE_PTHREAD

  • 进入 build_hi3519a 目录下编译 make -j4 make install 编译完成后可以在 install 目录下看到 libopencv_world.so 文件 000

    4 移植

  • 将生成的 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;
    }
  • 交叉编译命令 arm-himix200-linux-g++ -Wno-psabi -I /home/build_hi3519a/install/include/opencv4/ -L /home/build_hi3519a/install/lib/ -lopencv_world -lpthread -lrt -ldl -o demo demo.cpp

  • 将可执行文件 demo 复制到开发板,执行生成 demo.jpg 文件

  • 复制 demo.jpg 到虚拟机查看 33

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
merz
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
merz
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区