树莓派编译安装OpenCV

视频教程

换源

  • 查看系统版本(我的是bullseye),终端输入: lsb_release -a

  • 编辑 /etc/apt/sources.list 文件,注释掉其中所有内容,输入(注意版本号):

    deb https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi

  • 编辑 /etc/apt/sources.list.d/raspi.list 文件,注释掉其中所有内容,输入(注意版本号):

    deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main

  • 更新,终端输入: sudo apt-get update && sudo apt-get upgrade

安装依赖

  • 安装等下要用到的工具,终端输入: sudo apt-get install build-essential cmake unzip pkg-config

  • 安装一些视频、图像处理库,终端分别输入:

    $ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
    $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
    $ sudo apt-get install libxvidcore-dev libx264-dev
    
  • 安装GUI后端,终端输入: sudo apt-get install libgtk-3-dev

  • 安装一个可以减少GTK警告的包,终端输入:sudo apt-get install libcanberra-gtk*

  • 安装两个数值优化的包,终端输入:sudo apt-get install libatlas-base-dev gfortran

编译

  • 下载相同版本的opencv和opencv_contrib压缩包,解压到用户目录下,顺手将两个目录重命名为opencvopencv_contrib

  • 然后终端输入以下命令:

    $ cd ~/opencv
    $ mkdir build
    $ cd build
    $ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..
    
    • 解释各参数含义:
      • CMAKE_BUILD_TYPE 这个参数指定了编译的类型。在这里是RELEASE,意味着代码会被优化以获得最佳性能
      • CMAKE_INSTALL_PREFIX 这个参数指定了安装目录,即在编译完成后安装的文件将被放置到/usr/local目录下
      • OPENCV_EXTRA_MODULES_PATH 这个参数指定了额外的模块路径,用于指定OpenCV额外模块的位置
      • ENABLE_NEON 这个参数启用了NEON指令集的优化,NEON是ARM处理器的SIMD指令集,用于加速图像和信号处理操作
      • ENABLE_VFPV3 这个参数启用了VFPv3浮点运算优化,VFPv3是ARM处理器的浮点运算单元,用于提高浮点运算性能
      • BUILD_TESTS 这个参数禁用了测试的构建,意味着在编译时不会构建测试代码
      • OPENCV_ENABLE_NONFREE 这个参数启用了非免费模块,包括SIFT和SURF等专利算法
      • INSTALL_PYTHON_EXAMPLES 这个参数禁用了Python示例的安装
      • BUILD_EXAMPLES 这个参数禁用了示例的构建,意味着在编译时不会构建示例代码
  • 在正式编译前需要扩大交换空间,因为默认只有100MB内存,想使用4个核心编译的话一般需要2GB内存。故编辑 /etc/dphys-swapfile,将 100 改为 2048,保存退出后还需要重启交换空间的服务:

    $ sudo /etc/init.d/dphys-swapfile stop
    $ sudo /etc/init.d/dphys-swapfile start
    
  • 终端输入 make -j4 开始编译,过程比较久,若遇到编译中断的情况可以只使用 make 来编译

  • 安装,终端输入:

    $ sudo make install
    $ sudo ldconfig
    
  • 最后别忘了修改 /etc/dphys-swapfile,将交换空间改回来。因为tf卡读写次数有限,过大的交换空间会加速tf卡的报废

测试

python

  • 终端输入 export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.9/site-packages后即可使用(注意自己python的版本)

c++

  • 新建demo目录,进入后新建build目录、CMakeLists.txt和main.cpp:
    $ mkdir build
    $ cd build 
    $ mkdir build
    $ touch CMakeLists.txt
    $ touch main.cpp
    
  • CMakeLists.txt内容:
    cmake_minimum_required(VERSION 3.10)
    
    project(demo)
    
    add_executable(demo main.cpp)
    
    find_package( OpenCV 4 REQUIRED )
    
    include_directories(${OpenCV_INCLUDE_DIRS} "include")
    
    target_link_libraries(demo ${OpenCV_LIBS})
    
  • main.cpp内容:
    #include <opencv2/opencv.hpp>
    using namespace cv;
    
    int main (int argc, char *argv[])
    {
        Mat img = imread(argv[1], -1);
        imshow("demo", img);
        waitKey(0);
    
        return 0;
    }
    
  • 进入build目录,编译:
    $ cd build
    $ cmake ..
    $ make
    
  • 运行可执行文件demo即可,运行时应传入图片路径,比如: ./demo ~/img.jpg
  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值