当前位置:   article > 正文

香橙派5plus编译opencv4.9_orangepi5 qt5 opencv

orangepi5 qt5 opencv

 1、编译环境

1、香橙派官方Ubuntu22.04
Orangepi5plus_1.0.8_ubuntu_jammy_desktop_xfce_linux6.1.43.img

2、opencv版本:opencv4.9.0

2、编译步骤

2.1、更新软件源

  1. sudo apt update
  2. sudo apt upgrate

2.2、安装依赖包

sudo apt install build-essential cmake git pkg-config libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev libopenblas-dev liblapack-dev libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

2.3、下载opencv源码包

https://codeload.github.com/opencv/opencv/zip/refs/tags/4.9.0

2.4、进入解压后的文件内创建目录

  1. cd opencv
  2. mkdir bulid install

bulid目录存放编译的文件;install目录存放opencv的编译安装后的库

2.5、使用Cmake配置opencv

  1. cd bulid
  2. sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/之前创建的安装目录的路径 -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python3=ON -D WITH_OPENMP=OFF -D WITH_GSTREAMER_0_10=OFF -D WITH_VTK=OFF -D WITH_LIBV4L=ON -D WITH_OPENMP=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_SHARED_LIBS=ON -D ENABLE_PIC=ON -D WITH_ARITH_DEC=ON -D WITH_ARITH_ENC=ON -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D WITH_IMGCODEC_HDR=ON -D WITH_IMGCODEC_PXM=ON -D WITH_IMGCODEC_SUNRASTER=ON -D WITH_JASPER=ON -D WITH_JPEG=ON -D WITH_LAPACK=ON -D WITH_PNG=ON -D WITH_QT=ON -D WITH_PTHREADS_PF=ON -D WITH_TIFF=ON -D WITH_WEBP=ON -D WITH_GTK=ON -D WITH_OPENCL=ON ..

上面的cmake的安装目录需要填写正自己的。

2.6、编译

  1. sudo make -j8
  2. sudo make install

2.7、可能出现的错误

在编译到29%阶段会出现png库报错。

参考:RK3588编译OpenCV遇到png_set_longjmp_fn和libpng相关的报错解决办法 (orangepi.cn)
解决方案:

  1. sudo mv /usr/lib/libpng12.so /usr/lib/libpng12.so.bak
  2. sudo mv /usr/lib/libpng12.so.0 /usr/lib/libpng12.so.0.bak

之后,安装libpng16。

  1. sudo apt-get install libpng-dev libpng16-16
  2. //编译完成后恢复
  3. sudo mv /usr/lib/libpng12.so.bak /usr/lib/libpng12.so
  4. sudo mv /usr/lib/libpng12.so.0.bak /usr/lib/libpng12.so.0

3.Qt程序测试

编译安装完成后可在,创建的install目录下有下述文件:

将lib目录下的库拷贝到 /lib 中。

在Qt中的 .pro文件中,添加opencv的头文件和库的路径

main函数的测试代码

  1. #include "opencv2/objdetect.hpp"
  2. #include "opencv2/highgui.hpp"
  3. #include "opencv2/imgproc.hpp"
  4. #include "opencv2/videoio.hpp"
  5. #include <iostream>
  6. using namespace cv;
  7. using namespace std;
  8. int main(int, char**)
  9. {
  10. //数据帧
  11. Mat frame;
  12. //定义摄像头
  13. VideoCapture cap;
  14. int deviceID = 0; // 0 = open default camera 0 默认 摄像头
  15. int apiID = cv::CAP_ANY; // 0 = autodetect default API 0 自动 监测 摄像头采集的 格式
  16. cap.open(deviceID, apiID); //打开摄像头
  17. if (!cap.isOpened()) //判断摄像头 是否打开
  18. {
  19. cerr << "ERROR! Unable to open camera\n";
  20. return -1;
  21. }
  22. cout << "Start grabbing" << endl
  23. << "Press any key to terminate" << endl;
  24. // 死循环,不断采集数据
  25. for (;;)
  26. {
  27. cap.read(frame); //读取采集的数据 放入 数据帧中
  28. if (frame.empty()) {
  29. cerr << "ERROR! blank frame grabbed\n";
  30. break;
  31. }
  32. imshow("Live", frame); // 把 帧 显示出来
  33. if (waitKey(5) >= 0)
  34. break;
  35. }
  36. return 0;
  37. }

硬件:

最终效果图

opencv4.9库链接

链接:https://pan.baidu.com/s/1-lEx4L1SHUzAL9wLbH1rvg?pwd=s0qy 
提取码:s0qy

参考文献 

RK3588 ubuntu系统安装opencv_rk3588安装opencv4.9.0-CSDN博客

RK3588编译Opencv最新版 - Rubyen2333 - 博客园 (cnblogs.com)

RK3588编译OpenCV遇到png_set_longjmp_fn和libpng相关的报错解决办法 (orangepi.cn)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/840956?site
推荐阅读
相关标签
  

闽ICP备14008679号