当前位置:   article > 正文

Orange pi3 LTS Ubuntu22.04通过源码编译的方式安装opencv(C++版)_香橙派orangepi3 lts下程序

香橙派orangepi3 lts下程序

硬件:orangepi 3 LTS

之前安装opencv的时候遇到了很多奇奇怪怪的错误,所以干脆重新写入系统后开始安装。

安装Ubuntu22.04的过程按照官方提供的用户手册来操做

官方用户手册下载链接:http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3-LTS.html

安装必须的依赖

然后开始下载opencv所需的一下依赖

  1. sudo apt-get install g++
  2. sudo apt-get install cmake
  3. sudo apt-get install unzip
  4. sudo apt-get install build-essential
  5. sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
  6. sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev

按照官方所提供的系统默认的下载源(清华源),上面的这些依赖都是可以直接安装好不会报错的。

接下来去修改下载源

sudo nano /etc/apt/sources.list

在最后面添加

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main 

保存然后退出

在终端输入

sudo apt update

到这一步可能会出现这样的报错

这是因为公钥产生的报错,报错后在终端输入

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5

然后重新输入

sudo apt update

更新完后我们再下载两个依赖

sudo apt-get install libjasper-dev libdc1394-dev

到这一步必须的依赖就下载完了。

下载源码

下载链接:https://opencv.org/releases/

这里我们选择下载源码,可以根据自己的需要下载对应的版本。

可以直接在Ubuntu里面下载,我这把选择的是在windows中下载好后通过Xftp传到Ubuntu中

打开Ubuntu终端,进入到刚刚接收opencv-4.5.1.zip的文件夹,再终端中输入

unzip opencv-4.5.1

opencv-4.5.1有一个小bug,用nano打开文件

nano ./opencv-4.5.1/modules/gapi/test/gapi_async_test.cpp

添加图片中框出来的内容,保存然后退出。

编译和安装

回到刚刚接收opencv-4.5.1.zip的文件夹,输入以下命令

  1. cd opencv-4.5.1
  2. mkdir build
  3. cd build

开始Cmake编译

最基本的添加项可以按照这个来:

sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

输出以上内容即表示Cmake编译成功。

输入以下内容开始编译:

sudo make -j4

这个过程可能要花费一到两个小时

输出以上内容表示编译完成,然后在终端输入以下内容开始下载

sudo make install

输出以上内容表示安装完成。

环境配置

在终端中输入以下命令

sudo nano /etc/ld.so.conf.d/opencv.conf

输入以下内容:/usr/local/lib

保存然后退出。

在终端中输入:

sudo ldconfig 

然后配置环境变量:

在终端中输入:

sudo nano /etc/bash.bashrc

将下面的内容添加到文件末尾

  1. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  2. export PKG_CONFIG_PATH

保存然后退出。

随后在终端输入以下内容让配置生效。

source ~/.bashrc

到这里opencv源码编译安装就已经全部完成了。

验证

在终端输入以下命令可以检验安装是否正确

pkg-config --modversion opencv4

写一个简单的程序来测试以下:

  1. #include <opencv2/opencv.hpp>
  2. #include <iostream>
  3. using namespace cv;
  4. using namespace std;
  5. int main(int argc, char** argv)
  6. {
  7. // 加载图像
  8. Mat image = imread("test.jpg");
  9. // 检查图像是否加载成功
  10. if(image.empty())
  11. {
  12. cout << "无法加载图像文件" << endl;
  13. return -1;
  14. }
  15. // 在屏幕上显示图像
  16. namedWindow("Display window", WINDOW_AUTOSIZE);
  17. imshow("Display window", image);
  18. // 等待按键按下
  19. waitKey(0);
  20. return 0;
  21. }

讲上面的test.cpp和任意一张名为test.jpg的文件放到同一个文件夹中,然后打开终端,进入到该文件夹,在终端中输入以下命令编译

g++ test.cpp -o test `pkg-config opencv4 --cflags --libs`

编译完成生成可执行文件test

在终端中输入./test即可运行,程序效果为显示test.jpg。

这是一个测试摄像头的程序:

  1. #include <opencv2/opencv.hpp>
  2. #include <iostream>
  3. using namespace cv;
  4. using namespace std;
  5. int main()
  6. {
  7. VideoCapture cap(0); // 打开默认的摄像头
  8. if (!cap.isOpened()) // 检查摄像头是否成功打开
  9. {
  10. cout << "无法打开摄像头" << endl;
  11. return -1;
  12. }
  13. namedWindow("Camera", WINDOW_AUTOSIZE); // 创建窗口
  14. while (true)
  15. {
  16. Mat frame;
  17. cap >> frame; // 读取视频帧
  18. imshow("Camera", frame); // 在窗口中显示视频帧
  19. if (waitKey(30) == 'q') // 按下“q”键退出
  20. {
  21. break;
  22. }
  23. }
  24. return 0;
  25. }

编译方法和上一个图片测试的程序一样,只需要修改文件名的生成的名字。

运行时提示无法打开摄像头可以试着把程序中“VideoCapture cap(0);"中的0改成1

参考文章:

https://blog.csdn.net/qq_38228260/article/details/126531323?ops_request_misc=&request_id=&biz_id=102&utm_term=ubantu22.04%20%E5%AE%89%E8%A3%85opencv&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-126531323.142^v73^control,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187

https://blog.csdn.net/weixin_45861610/article/details/127169289?ops_request_misc=&request_id=&biz_id=102&utm_term=ubantu22.04%20%E5%AE%89%E8%A3%85opencv&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-127169289.142^v73^control,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187

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

闽ICP备14008679号