Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    在V853上进行Opencv库的编译步骤

    V Series
    2
    2
    1663
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • livpo
      livpo LV 6 last edited by

      OpenCV(Open Source Computer Vision)是一个开放源代码的计算机视觉库,它提供了一系列函数和算法,用于处理图像和视频。通过使用OpenCV,您可以进行各种计算机视觉任务,例如图像处理、对象识别、目标追踪、人脸检测和机器学习等。它提供了底层图像处理功能,以及高级功能和模块,如特征提取、边缘检测、图像分割和物体测量等。

      当V853需要进行图像的预处理操作时,涉及到使用opencv库中的相关接口和函数。所以如果要基于853进行模型的输入预处理或者输出后处理操作时,就不可避免的要依赖到opencv库。

      先获取GitHub中的opencv源码:
      https://github.com/opencv/opencv
      https://github.com/opencv/opencv_contrib

      进入目录下,创建build目录:

      mkdir build
      cd build/
      

      运行cmake指令配置参数生成Makefile文件:

      cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/xxxxx/opencv/opencv_contrib/modules ..
      

      当然,如果需要将库外置不编入环境的话可以修改CMAKE_INSTALL_PREFIX的值,直接改为对应路径即可。
      选择库的相关指令(指定编译/不编译某些库,优化opencv库大小):

      指定编译opencv_core库:

      -DBUILD_opencv_core=ON
      

      指定不编译opencv_hdf库:

      -DBUILD_opencv_hdf=OFF
      

      使用make指令进行编译:

      make -j4
      

      make完成并不代表结束,还需要生成opencv库使用。

      编译完成后,加上install命令,将其加载/注册到usr文件夹中,这样每次编译 就不用使用一整个opencv库/包了。

      make install
      

      当编译可执行文件需要链接opencv库时,可以编写一个cmake来编译文件:

      # 声明要求的 cmake 最低版本
      cmake_minimum_required( VERSION 2.8 )
      
      # 声明一个 cmake 工程
      project( test )
      
      #添加OPENMP库
      FIND_PACKAGE( OpenMP REQUIRED)
      if(OPENMP_FOUND)
      message("OPENMP FOUND")
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
      set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
      endif()
      
      #添加OPENCV库
      #指定OpenCV版本,代码如下
      ##find_package(OpenCV 3.3 REQUIRED)
      #如果不需要指定OpenCV版本,代码如下
      set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/usr/lib/cmake/opencv4)
      find_package(OpenCV REQUIRED)
      
      #添加OpenCV头文件
      include_directories(./ ${OpenCV_INCLUDE_DIRS})
      
      # 添加一个可执行程序
      # 语法:add_executable( 程序名 源代码文件 )
      add_executable(main ${DIRSRCS} ${NPULIB_DIRSRCS})
      
      # 将库文件链接到可执行程序上
      target_link_libraries(main ${OpenCV_LIBS} ${VIP_LIBS} -lstdc++ -lpthread -lrt -lm -ldl)
      

      可以看到,该cmake链接了opencv库,

      set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/usr/lib/cmake/opencv4)
      

      该方法通过链接opencv库中的cmake文件然后来找到对应的opencv包,保证主程序能够顺利调用。

      可以在github上下载yolov7处理代码,链接库进行验证。如若cmake生成makefile正常,make编译也正常,成功执行例程过后,opencv库成功生成。

      1 Reply Last reply Reply Quote Share 1
      • A
        a13575061636 LV 3 last edited by

        This post is deleted!
        1 Reply Last reply Reply Quote Share 0
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策