前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >笔记---Linux安装OpenCV及VSCode的配置编译

笔记---Linux安装OpenCV及VSCode的配置编译

作者头像
Vaccae
发布2021-12-28 09:27:33
4.5K0
发布2021-12-28 09:27:33
举报
文章被收录于专栏:微卡智享

前言

最近在学点新东西,教程中主要也是在Linux中使用,对于我这个以前从未接触Linux系统的人来说,正好也是个机会掌握下LInux系统。这篇就是记录在Linux下安装OpenCV的笔记。

Linux系统

其实这个选择也是挺简单的,Ubuntu的相关介绍还是挺多的,于是直接就下载了Ubuntu 20.04.3,装在了虚拟机中,我用的虚拟机是Virtual Box。

装好后的是可视化界面,由于不少操作可以使用鼠标操作,所以这两天使用来看,对于我来说比较常用的命令几个是:

代码语言:javascript
复制
--安装软件包
sudo apt install 软件包名称

--删除软软
sudo apt remove 软件名称

--升级软件 
sudo apt upgrade

--修改权限 
sudo chmod 777 文件或文件夹名

--创建文件,这个也不怎么用,主要是装上VSCode后,一般用那上新建了
touch 文件名

--建立链接
ln -s source dist  --软链接
ln source dist --硬链接

--其它的像cd  mkdir ls ll这些查询的命令,在可视化界面下对我来说基本没什么用,如果是只用命令行的话当然要掌握

安装的软件

1. VSCode

这个没得说,创建文件,C++的编译都用到这个了,一个是轻量,再就是适配的插件是真多。

2.Edge浏览器

Windows下用了Edge后就离不开它了,所以Linux也装了一下,原来的FireFox就不用了。

3.Fcitx五笔

这个纯是个人原因,拼音基本不太会打字了,平时电脑和手机也全是五笔打字,所以也是百度了一下Linux怎么装五笔,设置下就用上了。

OpenCV安装

回到正题了,Linux下安装OpenCV我也是按教程上来的,安装的过程中自己遇到的问题这里记录一下作为笔记。

01下载依赖

代码语言:javascript
复制
#!/bin/bash
sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev 
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt install libxvidcore-dev libx264-dev
sudo apt install libatlas-base-dev gfortran 
sudo apt install ffmpeg

上面是要安装的软件,打开VSCode,新建一个文件后复制上面的内容,然后保存到主目录下,起名为download.sh

在当前目录鼠标或键点击在终端打开,接下来修改download.sh的权限,然后执行

代码语言:javascript
复制
sudo chmod 777 ./download.sh

然后再直接输入./download.sh运行安装依赖,等待结束即可。

02下载OpenCV源码

在当前目录创建OpenCV的文件夹,鼠标操作即可,点击进去后右键再选择在终端打开。

代码语言:javascript
复制
#下载源码的语句
git clone https://github.com/opencv/opencv.git

应该是需要访问国外网站才能下载,经过漫长等待后源码都下载成功

03安装OpenCV

进入opencv下载的源码后,在里面创建一个build的文件夹,进去后还是鼠标右键在终端打开,输入

代码语言:javascript
复制
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON ..

make -j8

sudo make install

配置OpenCV的include路径

安装完成后,OpenCV的hpp文件都在在/usr/local/include/opencv4/opencv2,需要修改一下软链接

代码语言:javascript
复制
ln -s /usr/local/include/opencv4/opencv2/ /usr/include/opencv2/

配置好后可以在usr/include下面看到opencv2的文件夹

OpenCV4.pc的处理

安装前也是看了好几个文章,都介绍到说这个地方注意在 cmake 这一步要加上OPENCV_GENERATE_PKGCONFIG=ON 不然没有pkg-config 支持会很痛苦。并且build中也不会出现opencv4.pc的文件。

编译了好几次没在在Build文件夹下看到opencv4.pc的文件,一直没什么头绪,后面也是无意间在build文件夹下的unix-install文件夹中找到了

找到了opencv4.pc的文件,将这个文件复制到/usr/local/lib/pkgconfig目录下,如果提示权限问题,可以在目录/usr/local/lib下打开终端输入

代码语言:javascript
复制
sudo chmod 777 pkgconfig

打开的opencv4.pc的文件里面主要看includedir,上面我们修改了链接路径,所以这里可以不用做任何修改了

代码语言:javascript
复制
# Package Information for pkg-config

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

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

检测系统中能否找到头文件

代码语言:javascript
复制
 pkg-config --cflags opencv4
 pkg-config --libs opencv4

配置环境

上面的步骤做完后,在/etc/ld.so.conf.d的目录下可以看到opencv.conf的文件

使用VSCode打开后,里面是空白的,这时我们需要添加内容

代码语言:javascript
复制
#在opencv.conf中添加内容:
/usr/local/lib

然后执行生效命令

代码语言:javascript
复制
sudo ldconfig

修改/etc/bash.bashrc

在bash.bashrc的文件末尾添加

代码语言:javascript
复制
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 

接下来就执行更新命令

代码语言:javascript
复制
source /etc/bash.bashrc  
sudo updatedb

完成上面这些,OpenCV的安装配置就算完成了。

03简单的Demo

安装完成后,来做个简单的Demo测试是否能运行。

在OpenCV/Test/firstdemo下面创建了一个main.cpp的文件

代码语言:javascript
复制
#include <iostream>
#include <opencv2/opencv.hpp>

int main(int argc,char** argv){

    std::cout<<"111"<< std::endl;
    cv::Mat src = cv::imread("/home/vaccae/pic/111.jpg");
    cv::resize(src,src,cv::Size(500,800));
    cv::imshow("src", src);

    cv::waitKey(0);
    return 0;
}

在终端添加配置任务,生成task.json的文件

重点

因为前面OpenCV中已经配置好了pkg-config,所以这里面最重要的一句就是"`pkg-config --libs --cflags opencv4`",双引号里面要加上单引号。

代码语言:javascript
复制
{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "cppbuild",
      "label": "C/C++: g++ 生成活动文件",
      "command": "/bin/g++",
      "args": [
        "-fdiagnostics-color=always",
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}",
        "`pkg-config --libs --cflags opencv4`"
      ],
      "options": {
        "cwd": "${fileDirname}"
      },
      "problemMatcher": [
        "$gcc"
      ],
      "group": "build",
      "detail": "编译器: /bin/g++"
    }
  ]
}

然后按Ctrl+Shift+P,找到C++编辑配置,生成c_cpp_properties.json 文件

在includePath的目录下加入前面我们链接的OpenCV的头文件目录/usr/include/opencv2

launch.json调试文件中主要就是修改program的路径,默认生成的指定目录是工作目录下的Build/Debug/Output中,这里改我们在生成的配置路径即可。

实现效果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置OpenCV的include路径
  • OpenCV4.pc的处理
  • 配置环境
  • 重点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档