ubuntu环境 安装opencv4

前言

1.ubuntu环境 安装opencv4
2.编译opencv4 并移植到ARM64位开发板

正文

一、ubuntu环境 安装opencv4
1.安装opencv所需依赖库

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
安装gstreamer依赖文件
sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libgstreamer1.0-dev
if No package ‘gtk+-3.0‘ found
sudo apt install -y libgtk-3-dev

2.下载opencv4源码
下载地址:https://opencv.org/releases/
在这里插入图片描述

3.安装CMake工具

sudo apt-get install cmake
sudo apt  install cmake-qt-gui
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

4.配置CMake交叉编译OpenCV
4.1 将源码解压,并在目录下新建build/install文件夹
4.2 终端下直接运行cmake-gui
4.3 在cmake-gui配置 配置源码位路径和build路径
在这里插入图片描述
4.4 点击configure
4.5 因为我们此时是为ubuntu本机配置opencv4环境 所以直接选 Unix Makefiles Use default native compilers就行在这里插入图片描述
4.6 开启world模式 常规下编译opencv源码会生成很多库。如果在使用CMake生成VS解决方案时把BUILD_opencv_world选项勾上,则可以只生成一个库。
在这里插入图片描述4.7 设置build type
在这里插入图片描述4.8 设置install路径
在这里插入图片描述4.9 开启pkgconfig选项,否则无法生成opencv4.pc文件在这里插入图片描述

如果你发现你编译好的opencv有GTK冲突问题需要选择 -DWITH_GTK_2_X=ON
参考:https://www.freesion.com/article/7806192111/
在这里插入图片描述

4.10 再次点击 Configure 只能点击Generate
5. 进入刚才新建的build文件夹内 执行命令 make -j4 && make install 开始编译源码
在这里插入图片描述6.系统配置
6.1 执行以下命令编辑文件(如果没有就创建):

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

6.2 在打开的opencv.conf文件尾部增加以下内容:
在这里插入图片描述

 (即 刚才设置的prefix路径 + /lib) 
 每个人的地址不一样不要直接复制粘贴

6.3 执行配置:

sudo ldconfig

6.4 执行以下命令编辑文件(如果没有就创建):

sudo gedit ~/.bashrc

在打开的bash.bashrc文件尾部增加以下内容:
在这里插入图片描述

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:刚才设置的prefix路径 + /lib/pkgconfig  
export PKG_CONFIG_PATH

生效环境变量

source ~/.bashrc

6.5 至此配置完成,退出控制台,再重新打开一个,执行命令
pkg-config --modversion opencv4
注意是opencv4,可以看到opencv的版本号:

pkg-config --modversion opencv4
4.5.4

至此ubuntu环境下的opencv4就安装完成了
7. 使用QT程序验证
7.1 pro文件添加 opencv第三方库

unix:!macx: LIBS += -L$$PWD/../../linux/world/opencv-4.5.4/install/lib/ -lopencv_world

INCLUDEPATH += $$PWD/../../linux/world/opencv-4.5.4/install/include/opencv4 \
               $$PWD/../../linux/world/opencv-4.5.4/install/include//opencv4/opencv2
DEPENDPATH += $$PWD/../../linux/world/opencv-4.5.4/install/include

7.2 main.cpp

#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
#include<stdio.h>

using namespace cv;
using namespace std;

int main(int argc, char *argv[])
{
    Mat image = imread("/home/book/图片/报警弹窗.png");
    namedWindow("window", WINDOW_NORMAL);
    imshow("window",image);
    waitKey(0);
    return 0;
}

在这里插入图片描述
二、编译opencv4 并移植到ARM64位开发板
编译arm版本的opencv4 前5步几乎完全一样 但4.5 步骤不同请注意
4.5 cmake setup 选项 参考文献
请先确认已经配置好 自己的交叉编译链环境
在这里插入图片描述
PS:如果不想把交叉编译链设置为全家变量 可以选择 Specify options for cross-compling 去设置教程编译链 具体参考

选择 Specify toolchain file for cross-compling在这里插入图片描述选择你交叉编译链对应的cmake文件
在这里插入图片描述
路径在 /platforms/linux
在这里插入图片描述

编译时遇到的错误及解决方案 参考

问题一:

../../lib/libopencv_imgcodecs.so:对‘png_init_filter_functions_neon’未定义的引用
../../lib/libopencv_imgcodecs.so:对‘png_riffle_palette_rgba’未定义的引用
../../lib/libopencv_imgcodecs.so:对‘png_do_expand_palette_neon_rgb’未定义的引用
../../lib/libopencv_imgcodecs.so:对‘png_do_expand_palette_neon_rgba’未定义的引用
collect2: 错误: ld 返回 1

修改opencv下的 /3rdparty/libpng/pngpriv.h

130# if (defined(ARM_NEON) || defined(__ARM_NEON)) &&
改为
 #   if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

开发板上的部署

打包拷贝:将上一步得到的install文件夹打包成tar或者tar.gz再拷贝到开发板的任意目录下,若不打包则拷贝时会提示某些文件无法复制过去,这里选择开发板中的/opt作为它的解压目录,/opt也是一般默认的软件包的安装位置,便于后续的环境变量的配置及日后的维护和查找。
添加动态库加载路径:运行Vim /etc/ld.so.conf.d/opencv.conf,会提示该文件不存在将新建一个新的conf文件,在打开的conf第一行里写上自己第一步解压的opencv的lib地址,如
/home/jbyyy/opencv4/lib
vim中输入:wq指令保存并退出,随后运行sudo ldconfig激活生效。
3. 环境变量配置:先将解压的opencv文件中位于/lib/pkgconfig下的opencv.pc进行修改:

# Package Information for pkg-config
prefix=/home/jbyyy/opencv4/
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.5.4
Libs: -L${exec_prefix}/lib -lopencv_dnn -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_videoio -lopencv_imgcodecs -lopencv_features2d -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}

将prefix修改为自己开发板上对应的opencv文件夹的路径如

prefix=/home/jbyyy/opencv4/

修改完成后保存退出,运行Vim /etc/bash.bashrc 在最后一行添加如下:

PKG_CONFIG_PATH=/home/jbyyy/opencv4/lib/pkgconfig:$PKG_CONFIG_PATH
 export PKG_CONFIG_PATH

注意将路径替换成自己对应的pkgconfig路径, vim中输入:wq指令保存并退出,随后运行source ~/.bashrc激活生效。
运行如下指令若出现如下路径输出则说明pkg配置成功。

pkg-config --modversion opencv4
4.5.4
  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在树莓派4B上安装OpenCV,首先需要新建文件夹并下载解压OpenCVOpenCV_contrib的文件。可以从以下链接下载OpenCVOpenCV_contrib的压缩包:https://opencv.org/opencv-4-1-1/ 和 https://github.com/opencv/opencv_contrib/releases/tag/4.1.1。将下载的opencv_contrib-4.1.1文件夹放在opencv-4.1.1文件夹中。使用以下命令解压下载的文件:cd opencv-4.1.1 #根据实际路径和文件名 unzip opencv-4.1.1.zip unzip opencv-4.1.1.zip。这样就成功下载并解压了OpenCVOpenCV_contrib的文件。 此外,也可以参考一篇介绍在Ubuntu 18.04上安装OpenCV 3.2.0的教程,该教程提供了详细的解决方法,对于想安装OpenCV的用户来说是一个很好的参考。 如果在树莓派4B的Ubuntu 18.04上安装OpenCV时遇到缺少libjasper-dev的问题,可以使用以下命令安装libjasper-dev依赖包:sudo apt-get install libjaster-dev。 综上所述,在树莓派4B上安装OpenCV的步骤包括新建文件夹,下载并解压OpenCVOpenCV_contrib,以及根据需要安装相关依赖包。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于树莓派4B Ubuntu18.04LTS 的OpenCV4.1.1 开发环境部署](https://blog.csdn.net/weixin_49818157/article/details/127861522)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Ubuntu18.04安装opencv 3.2.0的解决方法](https://download.csdn.net/download/weixin_38637983/12842575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [树莓派4B Ubuntu18.04安装OpenCv依赖包libjasper-dev出现unable to locate libjasper-dev的解决办法](https://blog.csdn.net/qq_45619513/article/details/115430221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jbyyy、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值