设为首页收藏本站
查看: 456|回复: 0

【米尔瑞萨RZ/G2L开发板-创新应用】移植OpenCV4.8.0

[复制链接]

5

主题

2

回帖

77

积分

注册会员

积分
77
毛巾卷 发表于 2023-8-16 21:59:33 | 显示全部楼层 |阅读模式
本帖最后由 毛巾卷 于 2023-8-16 21:59 编辑

试试交叉编译opencv4.8.0到板子上玩玩。
首先是要按照官方的文档先配好SDK环境,这里就不再赘述。

然后我们去opencv的官网下载最新的源码 Releases - OpenCV,我下载的是opencv4.8.0版本


把源码拉到自己的交叉编译主机上,开始进行操作,首先需要修改cmake的配置,我们打开 opencv-4.8.0/platforms/linux/aarch64-gnu.toolchain.cmake 下的文件,进行如下修改。

接下来进行cmake编译,有些路径需要根据自己的实际安装路径进行适当的修改
  1. cmake .. -DCMAKE_TOOLCHAIN_FILE=/home/cz/cyy/YG2LX/opencv-4.8.0/platforms/linux/aarch64-gnu.toolchain.cmake  -DCMAKE_INSTALL_PREFIX=/home/cz/cyy/YG2LX/openCV_install
复制代码

至此就安装好了,我们只需要把交叉编译完成后的lib (不改变环境变量的情况放到 /lib64 目录)放到板子上即可在板子上使用opencv了,交叉主机端编译的时候就需要指定到lib和include即可。




编写一个简单的程序进行测试。

CMakeLists.txt

  1. cmake_minimum_required(VERSION 3.16.5)

  2. project(opencv_test_demo)

  3. set(CMAKE_CROSSCOMPILING TRUE)

  4. set(CMAKE_SYSTEM_NAME Linux)
  5. set(CMAKE_SYSTEM_PROCESSOR aarch64)


  6. set(CMAKE_CXX_STANDARD 11)

  7. #需要配置环境
  8. set(CMAKE_C_COMPILER "aarch64-poky-gcc")
  9. set(CMAKE_CXX_COMPILER "aarch64-poky-linux-g++")

  10. #set(CMAKE_C_COMPILER_FORCED TRUE)
  11. #set(CMAKE_CXX_COMPILER_FORCED TRUE)

  12. set(CMAKE_C_FLAGS "-mtune=cortex-a55 -fstack-protector-strong  -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/cz/cyy/YG2LX/poky/3.1.20/sysroots/aarch64-poky-linux")
  13. set(CMAKE_CXX_FLAGS "-mtune=cortex-a55 -fstack-protector-strong  -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/cz/cyy/YG2LX/poky/3.1.20/sysroots/aarch64-poky-linux")

  14. #本机实际交叉编译出来的opencv库的路径
  15. set(OPENCV_PATH /home/cz/cyy/YG2LX/openCV_install)


  16. include_directories(${OPENCV_PATH}/include/opencv4)
  17. link_directories(${OPENCV_PATH}/lib)
  18. set(OPENCV_LIBS ${OPENCV_LIBS} opencv_core opencv_imgcodecs opencv_imgproc)

  19. add_executable(${PROJECT_NAME} main.cpp)

  20. target_link_libraries(${PROJECT_NAME} ${OPENCV_LIBS})
复制代码



main.cpp
  1. #include <ctime>
  2. #include <iostream>
  3. #include <opencv2/imgproc.hpp>
  4. #include <opencv2/imgcodecs.hpp>
  5. #include <opencv2/imgproc/types_c.h>
  6. using namespace cv;

  7. int main(int argc, char **argv) {
  8.     Mat image;
  9.     image = imread("./demo.jpg");
  10.     if(!image.data)
  11.     {
  12.         printf("no image data (./demo.jpg)\n");
  13.         return -1;
  14.     }
  15.     else
  16.     {
  17.         printf("read image succes!");
  18.     }

  19.     Mat dst;
  20.     cvtColor(image, dst, CV_BGR2GRAY);
  21.     imwrite("image.jpg", dst);
  22.     printf("change succes!\n");
  23.     return 0;
  24. }
复制代码

cmake编译完后再放到板子上执行即可验证是否正常。






ok,收工。







YGL2X-OpenCV-4.8.0.tar.bz2

20.03 MB, 下载次数: 91

交叉编译好后的库

回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-5-12 23:15 , Processed in 0.170141 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表