Linux安装OpenCV (C++) 并配置vscode

这篇具有很好参考价值的文章主要介绍了Linux安装OpenCV (C++) 并配置vscode。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

郁闷死了。。昨天重装Ubuntu,重写了一份巨详细的Opencv安装说明,结果网页上打开了两个编辑界面,我在一个界面保存了草稿但是没有发布,退出浏览器的时候另一个界面问我是否保存更改,点了确定结果把我之前写的所有东西全部覆盖掉了。。。在线编辑没有版本管理也太不靠谱了。。。

以上为吐槽,以下为重写以后的正文:
本文档的作用在于

  • opencv-4.5.5基于Ubuntu20.04的安装方法
  • vscode 对于opencv的路径配置
  • 一些安装过程中常见错误的解决方案

按照官方说明安装opencv(core modules)

系统环境:Ubuntu 20.04 LTS
opencv版本:opencv-4.5.5

opencv官方链接:https://docs.opencv.org/4.x/d7/d9f/tutorial_linux_install.html

工具准备

  • opencv包(如果不准备的话也可以,可以直接下载)
  • g++
  • cmake
  • wget (非必选)
  • unzip (非必选)
  • libgtk2.0-dev(官方没有提,但是不安装的话运行程序会报错)
  • pkg-config (官方没有提但是一定要安装)
  • 其他一系列工具
  1. 安装以上全部工具的LINUX命令如下所示:
sudo apt update && sudo apt install -y cmake g++ wget unzip
sudo apt install pkg-config libgtk2.0-dev
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev canberra-gtk-module
  1. 从github下载opencv包,并原地解压(如果使用自己下载的opencv包的话可以省略这一步,但记得解压)
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
unzip opencv.zip
  1. 首先进入你的opencv加压出来的文件夹内,新建build文件夹,并进入其中。(官方这个是在opencv包的同级目录下新建build文件夹,我自己更喜欢把build文件放在opencv内部)
mkdir build
cd build
  1. 开始cmake
cmake  ..

cmake过程中的问题说明
在cmake过程中,可能需要从github上下载额外的资源,这时候比较容易出现的一个问题是有一个叫作“ippicv”的包需要远程下载,但是由于网络的问题,很容易就下载失败。这时候我们可以选择在电脑上手动下载,然后采取本地安装的方式安装这个包。具体操作步骤见本文末。

  1. make并设置多线程(-j4就是4线程同时进行的意思,这样可以加快处理速度)
make -j4

make编译完成后,如果成功的话,我们可以在build/lib路径下看到库文件,在build/bin路径下看到一些可执行的文件(样例,测试,apps等),运行以下指令可以查看上述文件是否存在。

ls bin
ls lib

另外,我们也可以在build目录下看到CMake package files,运行以下指令可查看。

ls OpenCVConfig*.cmake
ls OpenCVModules.cmake
  1. 如果上述检查都没问题的话,进行install,install的指令如下
sudo make install

按照默认设置,opencv会被安装到 /usr/local 目录下,所有的文件会被复制到以下位置:

/usr/local/bin - executable files
/usr/local/lib - libraries (.so)
/usr/local/cmake/opencv4 - cmake package
/usr/local/include/opencv4 - headers
/usr/local/share/opencv4 - other files (e.g. trained cascades in XML format)

opencv官方说明:安装过程只将文件复制到预定义的位置,并进行少量的修补。使用这种方法进行安装不会将opencv集成到系统包注册表中,因此,例如,opencv不能自动卸载。由于可能与系统包冲突,我们不建议普通用户进行全系统安装。

验证安装是否成功

安装完成后,我们有必要检验安装是否成功,我一般使用编译opencv自带的samples来检查。步骤如下:

  1. 回到最开始opencv加压出来的那个文件夹内,我们可以看到一个叫做samples文件夹。这个文件夹里面存储了opencv提供的示例文件。执行以下指令进入该文件夹,并在其中创建build目录,然后进入build目录。
cd samples
mkdir build
cd build
  1. 在build目录中依次执行cmake和make指令:
cmake ..
make -j4
  1. 编译完成后,我们可以发现在build目录内多出了一些文件夹,其中cpp文件夹存放的是c++文件编译出来的样例,进入cpp文件夹,我们来运行一个最基本的example_cpp_example示例,输入:
./example_cpp_example

正常情况下,终端只会提示一个no camera的warning,然后会跳出一个窗口,输出“Hello OpenCV”.
Linux安装OpenCV (C++) 并配置vscode

配置vscode

虽然在Linux内成功安装了opencv,但是我们仍然可能发现在vscode里,与opencv相关的模块导入被vscode用红色波浪线标记出来。这是因为vscode不知道从哪里去搜索opencv相关文件。

这时候我们可以在Linux中运行以下指令,搜索opencv相关文件:

sudo find / -iname "*opencv*"

然后我们会得到一堆搜索结果,比如下图这样的:
Linux安装OpenCV (C++) 并配置vscode接着,我们需要在vscode中同时按下Ctrl + Shift + P, 打开命令面板,在命令面板中输入 编辑配置,然后选择C/C++: 编辑配置(UI),如下图所示。
Linux安装OpenCV (C++) 并配置vscode接下来我们会来到Mircrosoft C/C++ 扩展的配置界面(打不开或者搜不到这个命令的话,原因是没有安装C/C++扩展,请在vscode中自行安装)。
Linux安装OpenCV (C++) 并配置vscode界面往下拉,我们会看到包含路径的配置选项,在下面空白中填入刚才查询到的opencv的路径即可。

这里需要说明的是:刚才查询的语句会让我们搜到很多具体文件的路径,但是实际需要填入编辑器路径的其实是目录,所以我们只需要把主要的文件夹填进去就好,比如像我这样只填写到 share/**, lib/**, include/**, bin/**这些路径就可以(后面的**号代表递归搜索),具体如下图所示。

Linux安装OpenCV (C++) 并配置vscode完成路径配置后,回到代码界面,我们会发面报错提示消失,选择头文件可以进行跳转。
Linux安装OpenCV (C++) 并配置vscode

一些错误和解决方案

1. terminate called after throwing an instance of ‘\cv::Exception’

详细报错如下:

./example_tutorial_Smoothing
terminate called after throwing an instance of '\cv::Exception'
  what():  OpenCV(4.5.5-dev) /home/liyao/opencv-4.x/modules/highgui/src/window.cpp:1250: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'

Aborted (core dumped)

解决方案:按照提示安装libgtk2.0-dev 和 pkg-config,然后重新cmake和make opencv。

2. Package ‘opencv4’, required by ‘world’, not found

Package opencv4 was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv4.pc'
to the PKG_CONFIG_PATH environment variable
Package 'opencv4', required by 'world', not found
test.cpp:2:9: fatal error: opencv2/opencv.hpp: No such file or directory
 #include<opencv2/opencv.hpp>
         ^~~~~~~~~~~~~~~~~~~~
compilation terminated.

原因是没有将opencv添加到系统路径,解决方案如下第3点所示:

3. 将opencv添加到系统路径

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: opencv
Description: The opencv library
Version:4.5.5
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core

其中version是你的opencv版本。

4. 手动安装ippicv包

参考:https://www.jianshu.com/p/3c2fc0da7398/

  1. 打开opencv解压目录下的opencv-x.x.x\3rdparty\ippicv\ippicv.cmake文件。
  2. 翻到最底部,我们可以看到以下这么一段代码:
 "${OPENCV_IPPICV_URL}"
                 "$ENV{OPENCV_IPPICV_URL}"
                 "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"

这段代码标明了ippicv文件的远程下载路径,但是其中${IPPICV_COMMIT}是一个变量,只有知道了这个变量是什么,我们才能拼凑出完整的地址。

  1. 我们继续向上翻,可以找到以下两段代码:
# Commit SHA in the opencv_3rdparty repo
  set(IPPICV_COMMIT "a56b6ac6f030c312b2dce17430eef13aed9af274")

上面这行的代码就是IPPICV_COMMIT的值。

    if(X86_64)
      set(OPENCV_ICV_NAME "ippicv_2020_lnx_intel64_20191018_general.tgz")
      set(OPENCV_ICV_HASH "7421de0095c7a39162ae13a6098782f9")

上面这行代码是根据我们的系统来决定的,ippicv最终下载哪个版本。
由于我是Ubuntu 20.04, 所以选择的是X86_64下的文件名:ippicv_2020_lnx_intel64_20191018_general.tgz,其中lnx表示Linux。文章来源地址https://www.toymoban.com/news/detail-470514.html

  1. 把上面三段拼接在一起,就可以获得最终的下载地址。
    https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz
  2. 从这个地址下载好ippicv包以后,将这个包拷贝到Linux系统中,我把它放在了和opencv压缩包同级的目录下。不需要解压,我们只需要在刚才的ippicv.cmake文件中将下载目录改为本地就可以:
  set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
  ocv_download(FILENAME ${OPENCV_ICV_NAME}
               HASH ${OPENCV_ICV_HASH}
               URL
                 "${OPENCV_IPPICV_URL}"
                 "$ENV{OPENCV_IPPICV_URL}"
                 "file:///home/你的用户名/ippicv存放的文件夹/"
               DESTINATION_DIR "${THE_ROOT}"
               ID IPPICV
               STATUS res
               UNPACK RELATIVE_URL)
  1. 然后我们继续原本的opencv安装流程,重新cmake一下,程序会自动根据上述我们设置的目录去找到ippicv的安装包,然后安装它。

到了这里,关于Linux安装OpenCV (C++) 并配置vscode的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu18.04下安装vscode并配置python+opencv

     进入vscode官网 https://code.visualstudio.com/ 下载完之后直接双击下载的包可以直接安装    打开vscode点击拓展然后搜索python点击安装 (我这边已经装过了) 现在打开终端(ctrl+alt+T) 输入python 不出意外会是ubuntu自带的2.7  现在pip install 安装opencv装不到python3.6解释器 现在输入ex

    2024年02月12日
    浏览(56)
  • linux安装配置opencv

    刚开始学习ubuntu,有些项目需要用到opencv,当我用下面的命令安装包的时候,总是出现“E:无法定位软件包 opencv”的错误。然后开始着手解决,网上搜集了很多的教程,大部分都是说要更换源,我也照做了,但是还是出现上述错误。 直到我看到了这篇优秀的文章后,我的问

    2024年02月03日
    浏览(36)
  • window11安装SSH和VScode并远程连接Linux服务器进行配置

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前段时间用激光雷达采集了一些点云数据,需要连接实验室服务器对数据进行处理,我大该花了一下午的时间完成了配置。网上相关的教程有很多,但是有很大一部分比较陈旧,存在着一些问题,本文总

    2024年02月05日
    浏览(65)
  • C++项目——集群聊天服务器项目(一)项目介绍、环境搭建、Boost库安装、Muduo库安装、Linux与vscode配置

    今天开始想更新一个C++项目,实现一个 支持跨服务器通信、支持负载均衡的集群聊天服务器项目 。项目会应用muduo网络库、CMake编译、MySQL数据库、JSon序列化与反序列化、Redis消息订阅模式以及Nginx负载均衡功能。 有兴趣的宝可以跟我一起实操起来,巩固自己的C++学习吧~ 本项

    2024年04月14日
    浏览(62)
  • 第一章:Linux(Ubuntu)环境下OpenCV的安装配置和实例,亲测可用

    目录 1、安装环境 1.1、安装C++开发环境,安装编译器GCC和G++ 1.2、安装build-essential 1.3、安装cmake 1.4、安装依赖库 1.5、安装OpenCV、下载OpenCV连接OpenCV 1.6、配置环境变量 1.7、查看是否安装成功 1.8、创建Opencv.pc 1.9、查看opencv版本 2、OpenCV测试 2.1、测试用例   任意文件夹下新建工程

    2024年02月08日
    浏览(48)
  • vscode配置opencv环境【完整版】

    1.安装MinGW 并配置环境变量path 在终端输入gcc -v验证 2.安装cmake 3.官方下载opencv源码source 在cmake中编译,新建D:opencv目录 先执行configure再执行generate opencv目录下终端输入mingw32-make -j 8 完成后在输入 mingw32-make install 至此编译完成。 4.配置json文件 c_cpp_properties.json配置修改注释掉的

    2024年02月12日
    浏览(76)
  • VScode配置c++版本opencv(亲测)

    (1)vscode官网下载 (2)opencv及其拓展库源码下载 本人下载的是455版本,注意opencv版本与opencv-contrib版本需一致 (3)MinGW下载 (4)cmake下载 (1)解压缩四个安装包,将mingw64的bin添加到环境变量  win+R打开cmd,输入gcc --version,如图所示表明安装成功  (2)vscode编译 运行c-

    2024年02月04日
    浏览(41)
  • VSCode配置C++开发环境:OpenCV

    最近在做深度学习的C++部署相关工作,于是写下这篇文档记录环境配置的过程。环境配置是一项非常繁琐的工作,无论从大学做相关作业还是到工作上。做这项工作需要技术的同时,还需要点运气。当然遇到无法解决的玄学问题,最终只有一个办法:重启设备。 本篇文章以环

    2024年02月08日
    浏览(101)
  • VScode + opencv + c++ + win配置教程

    准备: 1、下载opencv 2、下载CMake 3、 3、下载MinGw 下载完解压放到一个文件夹里面,便于环境管理,文件夹我重命名了,解压出来文件名不一样正常 环境变量配置 4、安装vscode扩展 5、新建main.cpp 6、新建task.json 7、新建launch.json 8、新建c_cpp_properties.json 9、运行 快捷键F5

    2024年02月06日
    浏览(80)
  • windows使用vscode配置c++ OpenCV

    路径自己配置都不是必须下载到C盘 1. Visual Studio Code下载官网 Download Visual Studio Code - Mac, Linux, Windows 2. 已编译好的OpenCV下载 版本按需求下载,我这里用的是3.4.1 OpenCV官网是OpenCV的源码(未编译不可直接使用) 3. MinGW-w64下载编译器(GCC的windows版本) 1. MinGW-w64的bin目录 例如: E:c

    2024年02月03日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包