香橙派5plus编译opencv4.9

 1、编译环境

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

2、opencv版本:opencv4.9.0

2、编译步骤

2.1、更新软件源

sudo apt update
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、进入解压后的文件内创建目录

cd opencv
mkdir bulid install

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

2.5、使用Cmake配置opencv

cd bulid
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、编译

sudo make -j8
sudo make install

2.7、可能出现的错误

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

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

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

之后,安装libpng16。

sudo apt-get install libpng-dev libpng16-16

//编译完成后恢复
sudo mv /usr/lib/libpng12.so.bak /usr/lib/libpng12.so
sudo mv /usr/lib/libpng12.so.0.bak /usr/lib/libpng12.so.0

3.Qt程序测试

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

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

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

main函数的测试代码

#include "opencv2/objdetect.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>

using namespace cv;
using namespace std;
int main(int, char**)
{
 //数据帧
 Mat frame;
  //定义摄像头
 VideoCapture cap;
 int deviceID = 0; // 0 = open default camera  0 默认 摄像头
 int apiID = cv::CAP_ANY; // 0 = autodetect default API  0 自动 监测  摄像头采集的 格式
 cap.open(deviceID, apiID);  //打开摄像头
 if (!cap.isOpened())   //判断摄像头 是否打开
 {
 cerr << "ERROR! Unable to open camera\n";
 return -1;
 }

 cout << "Start grabbing" << endl
 << "Press any key to terminate" << endl;

 // 死循环,不断采集数据
 for (;;)
 {
 cap.read(frame);   //读取采集的数据 放入 数据帧中
 if (frame.empty()) {
 cerr << "ERROR! blank frame grabbed\n";
 break;
 }

 imshow("Live", frame);  // 把 帧 显示出来
 if (waitKey(5) >= 0)
 break;
 }

 return 0;
}

硬件:

最终效果图

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)

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值