OpenCV 3.4.12 + opencv_contrib Ubuntu交叉编译到arm(rv1126_rv1109)开发板

OpenCV 3.4.12 + opencv_contrib Ubuntu交叉编译到arm(rv1126_rv1109)开发板 JQ 2023-11-30 10:06:58 407

一、安装依赖库

alientek@ubuntu:~$ sudo apt-get install lib32z1 cmake cmake-qt-gui build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff5-dev libswscale-dev

二、获取OpenCV及opencv_contrib源码包

GitHub获取:
【opencv_contrib 3.4.12】https://github.com/opencv/opencv_contrib.git
【OpenCV 3.4.12】https://github.com/opencv/opencv.git
将源码包下载下来

下载到Ubuntu后,将opencv_contrib放在opencv主目录下

alientek@ubuntu:~$ ls
公共的 视频 文档 音乐 ai opencv-3.4.12.zip sdk
模板   图片 下载 桌面 opencv_contrib-3.4.12.zip test
alientek@ubuntu:~$ unzip opencv_contrib-3.4.12.zip
alientek@ubuntu:~$ unzip opencv-3.4.12.zip
alientek@ubuntu:~$ ls
公共的 视频 文档 音乐 ai             opencv-3.4.12.zip     opencv_contrib-3.4.12.zip test
模板   图片 下载 桌面 opencv-3.4.12 opencv_contrib-3.4.12 sdk
alientek@ubuntu:~$ mv opencv_contrib-3.4.12 ./opencv-3.4.12/
alientek@ubuntu:~$ ls
公共的 视频 文档 音乐 ai             opencv-3.4.12.zip         sdk
模板   图片 下载 桌面 opencv-3.4.12 opencv_contrib-3.4.12.zip test
alientek@ubuntu:~$ cd opencv-3.4.12/
alientek@ubuntu:~/opencv-3.4.12$ ls
3rdparty cmake           CONTRIBUTING.md doc     LICENSE opencv_contrib-3.4.12 README.md
apps     CMakeLists.txt data             include modules platforms             samples
alientek@ubuntu:~/opencv-3.4.12$ mkdir build install
alientek@ubuntu:~/opencv-3.4.12$ ls
3rdparty build CMakeLists.txt   data include LICENSE opencv_contrib-3.4.12 README.md
apps     cmake CONTRIBUTING.md doc   install modules platforms             samples

三、配置cmake

alientek@ubuntu:~/opencv/build$ sudo cmake-gui ..

出现以下界面,按如下配置(交叉编译)

点击Next>后,出现以下界面,按如下配置

修改安装路径,这里我选择:/home/alientek/opencv-3.4.12/install (默认安装在/opt/local 建议换个路径)

选择opencv_contrib-3.4.12/modules路径(如要使用有专利保护的算法,就勾选OPENCV_ENABLE_NONFREE,我这里没有勾选)

取消勾选BUILD_PROTOBUF WITH_PROTOBUF

勾选BUILD_ZLIB (因为自带的zlib库位x86架构)
勾选BUILD_PNG BUILD_JPEG BUILD_TIFF


配置完后点击Configure,然后点击Generate

关闭cmake-gui,回到终端界面

alientek@ubuntu:~/opencv-3.4.12/build$ sudo make -j16

编译完成后安装

alientek@ubuntu:~/opencv-3.4.12/build$ sudo make install

四、报错解决办法

问题
../../lib/libopencv_imgcodecs.so.3.4.13: undefined reference to `png_do_expand_palette_rgb8_neon'
../../lib/libopencv_imgcodecs.so.3.4.13: undefined reference to `png_init_filter_functions_neon'
../../lib/libopencv_imgcodecs.so.3.4.13: undefined reference to `png_do_expand_palette_rgba8_neon'
../../lib/libopencv_imgcodecs.so.3.4.13: undefined reference to `png_riffle_palette_neon'
collect2: error: ld returned 1 exit status
解决办法:
alientek@ubuntu:/opt/atk-dlrv1126-toolchain/usr/include$ cd ~/opencv-3.4.12/3rdparty/libpng/
alientek@ubuntu:~/opencv-3.4.12/3rdparty/libpng$ vim pngpriv.h

将头文件中的

if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

改为

if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

由于每个人遇到的问题各不相同,大多数问题都可以在百度或者Google解决,根据我的流程配置,能够避免绝大多数问题

五、配置环境

安装完成后,可查看安装路径有如下文件

alientek@ubuntu:~/test$ cd ~/opencv-3.4.12/install/
alientek@ubuntu:~/opencv-3.4.12/install$ ls
bin include lib share

打开 /etc/ld.so.conf 文件

alientek@ubuntu:~/opencv-3.4.12/install/lib$ sudo vim /etc/ld.so.conf

将刚刚安装opencv的库目录添加到最后一行

/home/alientek/opencv-3.4.12/install/lib

保存退出并生效配置

alientek@ubuntu:~/opencv-3.4.12/install/lib$ ldconfig

将库文件发送到开发板(我使用abd工具,你按照自己其他方式发送文件也行,只要能将库文件发到开发板就没问题)

5555为adb连接后给出的端口号

/usr/lib/ 为开发板端用户库目录

alientek@ubuntu:~/opencv-3.4.12/install/lib$ adb connect 192.168.0.99
alientek@ubuntu:~/opencv-3.4.12/install/lib$ adb -s 192.168.0.99:5555 push *opencv* /usr/lib/

ps:按照我的流程编译出来的库经测试,少了两个库,我把这两个库以及其他所有库放在百度网盘里,各位自行下载

分别是opencv_dnn 以及 opencv_freetype

下载后放在Ubuntu端opencv的lib目录中,同样也要放在开发板的/usr/lib目录中

链接:https://pan.baidu.com/s/1CCmoJzcwiiLc2lrpmi0z_A?pwd=ew9o
提取码:ew9o

至此,OpenCV 3.4.12及opencv_contrib 3.4.12交叉编译就已经完成,后续需要使用opencv时,在Ubuntu端使用交叉编译工具编译后将可执行文件发送到板端即可运行

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

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

举报反馈

举报类型

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

详细说明

审核成功

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

审核失败

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

小包子的红包

恭喜发财,大吉大利

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

    易百纳技术社区