Ubuntu安装Opencv3

Ubuntu安装Opencv3Ubuntu 安装 Opencv31 安装准备 2 安装 3 配置环境 4 检验环境 Ubuntu20 04 Opencv3 4 141 安装准备 1 1 安装 cmakesudoapt getinstallcm 2 安装依赖环境 sudoapt getinstallbu essentiallib 0 devlibavcode devlibavform devlibjpeg devlibswscal devlibtiff5 devsudoapt

环境:Ubuntu 20.04, Opencv3.4.14

0. CMakeLists中怎么使用

根据官方在/usr/local/share/OpenCVConfig.cmake文件中的说明
请添加图片描述
CMakeLists.txt中加入这些即可

find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) # Not needed for CMake >= 2.8.11 add_executable(可执行文件的名字 xxx.cpp) # 先添加可执行文件 target_link_libraries(可执行文件的名字 ${OpenCV_LIBS}) # 再链接到动态库 

1. 安装准备

1.1 安装cmake

sudo apt-get install cmake 

1.2安装依赖环境

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev sudo apt-get install libgtk2.0-dev sudo apt-get install pkg-config 

1.3 下载Opencv源代码
下载地址:https://opencv.org/releases/
这里以3.4.14为例, 选择sources
如果要安装opencv_contrib的话,一并下载,github链接:https://github.com/opencv/opencv_contrib/tree/3.4.14
在这里插入图片描述



2.安装

2.1 解压
将下载的压缩包解压到一个地方,这里选择/home,将解压后的文件夹重命名为opencv3
2.2 新建build文件夹
进入到解压的文件夹下,新建一个build文件夹,文件结构如下
在这里插入图片描述



mkdir build 

2.3 cmake编译
进入build

cd build 
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. 

需要编译contrib的话,指定它的代码路径,这里我把它解压缩后的文件放到了我们自己建的opencv3下:

sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.14/modules .. CMAKE_INSTALL_PREFIX=/usr/local ../opencv-3.4.14 

只编译C++模块,禁用java和python的编译,参考https://answers.opencv.org/question//compile-from-source-without-python-2-java-support/

sudo cmake -D CMAKE_BUILD_TYPE=Release -D \ OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.14/modules .. -D \ BUILD_opencv_java=OFF -D \ BUILD_opencv_python=OFF CMAKE_INSTALL_PREFIX=/usr/local ../opencv-3.4.14 

在这里插入图片描述
在这里插入图片描述
进行编译,可以使用sudo make -j8 、sudo make -j4 、sudo make

sudo make -j8 

在这里插入图片描述
2.4 安装

sudo make install 

在这里插入图片描述

3.配置环境

sudo gedit /etc/ld.so.conf 

在末尾加入一行

include /usr/local/lib 

修改后保存关闭,加载configure文件

sudo ldconfig 

修改bash.bashrc文件

sudo gedit /etc/bash.bashrc 

在文件末尾加入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH 

然后在命令行中输入

source /etc/bash.bashrc 

4. 检验

在命令行中输入

pkg-config opencv --modversion 

在这里插入图片描述

5. 卸载Opencv

首先进入到安装opencv的build目录下,执行卸载命令

sudo make uninstall 

然后删除build文件夹

cd .. # 返回上一级文件夹 sudo rm -r build 

之后需要清空 /usr中有关 opencv的东西(命令如下),但是在你执行上一步 sudo make uninstall 有的已经删除 /usr下相关opencv。这个情况因电脑而异。

sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv* 

在这里插入图片描述之后回退到home目录下,执行下面命令

chmod a+x /home/*/opencv  *表示用户名,注意换成自己的 rm -r /home/*/opencv 
pkg-config opencv --libs pkg-config opencv --modversion 

在这里插入图片描述

PS:编译opencv3.2.0遇到的问题:

  1. Failed to download v3.1.0/protobuf-cpp-3.1.0.tar.gz. Status=7;“Couldn’t connect to server”。参考https://www.cnblogs.com/MyKKBlog/articles/9143753.html
    原因是有个文件下载不下来,可以从github上直接下载:https://github.com/protocolbuffers/protobuf/releases/tag/v3.1.0
    ,之后放到这个路径下/home/qyz/Downloads/opencv3.2.0/opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2bef/v3.1.0
    看到.download,需要打开隐藏文件夹:Ctrl+H,把下载的文件放进去就行


  2. /usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: No such file or directory #include_next <stdlib.h> compilation terminated.
    原因:gcc7已经吧stdlib.h纳入了libstdc++以进行更好的优化,C Library的头文件stdlib.h使用 Include_next,而include_next对gcc系统头文件路径很敏感。
    解决方法:不把include路径作为系统目录,而是使用标准方式包含include 目录。
    在编译opecv-3.2.0时,加入选项:-DENABLE_PRECOMPILED_HEADERS=OFF


sudo cmake -D CMAKE_BUILD_TYPE=Release -D \ > OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.2.0/modules .. -D \ > BUILD_opencv_java=OFF -D \ > BUILD_opencv_python=OFF -DENABLE_PRECOMPILED_HEADERS=OFF CMAKE_INSTALL_PREFIX=/usr/local ../opencv-3.2.0 


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232904.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月1日 下午6:01
下一篇 2025年9月1日 下午6:22


相关推荐

  • proxmox物理机迁移_迁移到物理服务器

    proxmox物理机迁移_迁移到物理服务器这两天由于源代码管理服务器的当机,准备将源服务器配置数据库迁移至新服务器。下面是TFS2010物理迁移的一些心得:1、尽可能将新服务器的计算机名称和源服务器相同。2、配置完成后,删除配置数据库,并附加同名的源数据库是无法成功使用。在访问tfs的web站点时出错。3、附加源配置数据后,需要通过命令重新配置才可以确保使用:TFSconfigregisterDB/sqlInstanc…

    2025年11月22日
    3
  • iPhone各机型屏幕尺寸

    iPhone各机型屏幕尺寸机型 尺寸 点(Point) pixel iPhone4/4s 3.5英寸 320×480 960×640 iPhone5/5s/SE 4.0英寸 320×568 640×1136 iPhone6/6s/7/8 4.7英寸 375×667 750×1334 iPhone6p/6sp/7p/8p 5.5英寸 414×736 1242×2208 iPhoneX/…

    2022年5月14日
    105
  • JAVA程序猿怎么才干高速查找到学习资料?

    JAVA程序猿怎么才干高速查找到学习资料?

    2021年11月30日
    49
  • 链表排序之选择排序法_单链表直接选择排序

    链表排序之选择排序法_单链表直接选择排序选择排序的优点在于它每次选择出最大或者最小的值,将它们进行排序此选择排序的思想在于选择出最小的节点,创建新链表,将原链表的最小节点删除,继续循环TYPE*lain(intl,TYPE*head){TYPE*first,*tail,*p_min,*min,*p;first=NULL;while(head!=NULL){

    2022年10月11日
    6
  • 为什么我charles抓包带了给锁_使用Charles抓包

    为什么我charles抓包带了给锁_使用Charles抓包使用Charles抓包Charles抓包Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器。它允许一个开发者查看所有连接互联网的HTTP通信。这些包括request、response现HTTPheaders(包含cookies与caching信息)。1、配置抓包环境1)下载Charles2)安装Charles下载完毕之后,直接进行安装即可正常使用(ps:不注册的话,每次使用3…

    2022年5月24日
    152
  • raid0 raid1 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘[通俗易懂]

    raid0 raid1 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘[通俗易懂]一、Raid0:一块硬盘或者以上就可做raid0优势:数据读取写入最快,最大优势提高硬盘容量,比如3块80G的硬盘做raid0可用总容量为240G。速度是一样。缺点:无冗余能力,一块硬盘损坏,数据全无。建议:做raid0可以提供更好的容量以及性能,推荐对数据安全性要求不高的使用。二、Raid1:至少2快硬盘可做raid1优势:镜像,数据安全强,2快硬盘做raid一块正常运行,另外一块镜像备份数据,保障数据的安全。一块坏了,另外一块硬盘也有完整的数据,保障运行。缺…

    2022年7月15日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号