OpenCV的安装和vscode的配置

在图像处理领域,OpenCV的使用是必不可少的,这里介绍一下OpenCV的安装及其在vscode中的配置

1.OpenCV的安装

(1)安装依赖

	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

	 

第三行的安装可能会出现无法定位包的错误,有三种解决方案
第一种:

	sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"

	sudo apt update

	sudo apt install libjasper1 libjasper-dev

这个我自己用是有效果的
第二种:

	sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"

	sudo apt update

	sudo apt install libjasper1 libjasper-dev

第三种:不用管,其实这个依赖对后续的使用影响不大,甚至可能有些淘汰了

(2)下载OpenCV源码

网站放在这里了:https://opencv.org/releases/,下载对应版本的source就OK了

(3)安装

先解压文件,这里我解压在/home目录下了

进入OpenCV文件夹,创建build目录

	cd opencv4.5.5

	mkdir build

	cd ./build

之后是cmake步骤

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

再执行make指令

	sudo make -j6  #数字取决于你电脑的进程数,数字越大,make越快

	sudo make install

(4)环境配置

我们之前安装的时候 OPENCV_GENERATE_PKGCONFIG=ON 所以在/usr/local/lib/pkgconfig下生成了opencv4.pc文件,里面记录了OpenCV头文件、库文件的路径。这个文件注意一下,因为最后你如果出错,很有可能缺少了这个文件

	sudo gedit /etc/bash.bashrc
	#文件末尾添加以下内容 并保存

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

	export PKG_CONFIG_PATH
	#更新

	sudo updatedb

	source /etc/bash.bashrc
	#打开下列文件

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

	 

	# 添加lib路径,在末尾保存退出

	/usr/local/lib

	 

	# 更新

	sudo ldconfig
	#终端输入以下两命令,显示正常则安装成功

	pkg-config --modversion opencv4 #查看版本号

	pkg-config --libs opencv4 #查看libs库

2.vscode的配置

先保证自己C++相关插件下载好
实现一个软连接

	cd   /usr/local/include/

	sudo  ln  -s   opencv4/opencv2   opencv2

配置以下三个文件
c_cpp_properties.json

	{

	    "configurations": [

	        {

	            "name": "Linux",

	            "includePath": [

	                "${workspaceFolder}/**",

	                "/usr/local/include/",

	                "/usr/include/"

	            ],

	            "defines": [],

	            "compilerPath": "/usr/bin/gcc",

	            "cStandard": "c17",

	            "cppStandard": "gnu++14",

	            "intelliSenseMode": "linux-gcc-x64"

	        }

	    ],

	    "version": 4

	}

launch.json

	{

	 

	    "version": "0.2.0",

	    "configurations": [

	        {

	            "name": "g++ - Build and debug active file",

	            "type": "cppdbg",

	            "request": "launch",

	            "program": "${fileDirname}/${fileBasenameNoExtension}",  //程序文件路径

	            "args": [],  //程序运行需传入的参数

	            "stopAtEntry": false,

	            "cwd": "${fileDirname}",

	            "environment": [],

	            "externalConsole": true,   //运行时是否显示控制台窗口

	            "MIMode": "gdb",

	            "setupCommands": [

	                {

	                    "description": "Enable pretty-printing for gdb",

	                    "text": "-enable-pretty-printing",

	                    "ignoreFailures": true

	                }

	            ],

	            "preLaunchTask": "C/C++: g++ build active file",

	            "miDebuggerPath": "/usr/bin/gdb"

	        }

	    ]

	}

tasks.json

	{

	    "tasks": [

	        {

	            "type": "cppbuild",

	            "label": "C/C++: g++ build active file",  /* 与launch.json文件里的preLaunchTask的内容保持一致 */

	            "command": "/usr/bin/g++",

	            "args": [

	                "-std=c++11",

	                "-g",

	                //"${file}",   /* 编译单个文件 */

	                "${fileDirname}/*.cpp",  /* 编译多个文件 */

	                "-o",

	                "${fileDirname}/${fileBasenameNoExtension}",  /* 输出文件路径 */

	 

	                /* 项目所需的头文件路径 */

	                "-I","${workspaceFolder}/",

	                "-I","/usr/local/include/",

	                "-I","/usr/local/include/opencv4/",

	                "-I","/usr/local/include/opencv4/opencv2",

	 

	                /* 项目所需的库文件路径 */

	                "-L", "/usr/local/lib",

	 

	                /* OpenCV的lib库 */

	                "/usr/local/lib/libopencv_*",

	 

	            ],

	            "options": {

	                "cwd": "${fileDirname}"

	            },

	            "problemMatcher": [

	                "$gcc"

	            ],

	            "group": {

	                "kind": "build",

	                "isDefault": true

	            },

	            "detail": "Task generated by Debugger."

	        }

	    ],

	    "version": "2.0.0"

	}

	 

就ok了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/299063.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue2中vuex详细使用

1.安装 说明:也就是版本号,一般vue2安装vuex3。 npm i vuex3.6.2 2.搭建架子 执行流程如下: 初始化状态:在state对象中定义了一个名为message的属性,并将其初始值设置为"启动"。 定义变更函数&#xff08…

leetcode 每日一题 2023年12月30日 一周中的第几天

题目 给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数:day、month 和 year,分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", &qu…

pytorch集智-2单车预测器

完整代码在个人主页简介链接pytorch路径下可找到 1 单车预测器1.0 1.1 人工神经元 对于sigmoid函数来说,w控制函数曲线的方向,b控制曲线水平方向位移,w控制曲线在y方向的幅度 1.2 多个人工神经元 模型如下 数学上可证,有限神经…

[大厂实践] 无停机迁移大规模关键流量(下)

在系统升级、迁移的过程中,如何验证系统逻辑、性能正确无误,是一个很大的挑战。这一系列介绍了Netflix通过重放流量测试解决这一挑战的实践。原文: Migrating Critical Traffic At Scale with No Downtime — Part 2 想象一下,你被心爱的Netf…

【操作系统xv6】学习记录5--实验1 Lab: Xv6 and Unix utilities

ref:https://pdos.csail.mit.edu/6.828/2020/xv6.html 实验:Lab: Xv6 and Unix utilities 环境搭建 实验环境搭建:https://blog.csdn.net/qq_45512097/article/details/126741793 搭建了1天,大家自求多福吧,哎。~搞环境真是折磨…

浅谈 JVM 类加载过程

🚗🚗🚗今天给大家分享的是HTTPS加密的工作过程。 清风的CSDN博客 🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! ✈️✈…

SQL Server从0到1——写shell

xp_cmdshell 查看能否使用xpcmd_shell; select count(*) from master.dbo.sysobjects where xtype x and name xp_cmdshell 直接使用xpcmd_shell执行命令: EXEC master.dbo.xp_cmdshell whoami 发现居然无法使用 查看是否存在xp_cmdshell: EXEC…

如何在群晖7.2中运行WPS Office镜像容器并使用固定地址公网访问

文章目录 1. 拉取WPS Office镜像2. 运行WPS Office镜像容器3. 本地访问WPS Office4. 群晖安装Cpolar5. 配置WPS Office远程地址6. 远程访问WPS Office小结 7. 固定公网地址 wps-office是一个在Linux服务器上部署WPS Office的镜像。它基于WPS Office的Linux版本,通过…

数据结构与算法教程,数据结构C语言版教程!(第二部分、线性表详解:数据结构线性表10分钟入门)九

第二部分、线性表详解:数据结构线性表10分钟入门 线性表,数据结构中最简单的一种存储结构,专门用于存储逻辑关系为"一对一"的数据。 线性表,基于数据在实际物理空间中的存储状态,又可细分为顺序表&#xff…

解决pip安装第三库echarts报错:Package would be ignored而安装失败的问题

现象: 尝试了很多方法都没解决 ,最后终于突然灵光一闪找到原因(我这是python虚拟环境,创建的时候会自动升级pip) 原因: pip版本过高! 想不到是这原因吧! 解决办法:手动…

主线程退出后子线程是否还会正常运行?

问题: 父子线程的关系 今天突然有感而发, 想要来探讨一下主线程和子线程之间的关系。 例一:子线程执行时间较父线程慢 public class ThreadTest {public static void main(String[] args) {// 测试主线程 和 子线程Thread sonThread new …

STM32 HAL库定时器触发DMA并口数据传输

代码目的: STM32与FPGA通讯,通过8位并口线进行通讯,16byte的数据在10us之内通过8位并口数据线传给FPGA,FPGA读取该数据。 HAL库设置说明: 时钟采用80MHz,由于16byte的数据要在10us之内传完,那…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(8)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(7) 2.2 HOST主桥 MPC8548处理器的拓扑结构如图2-2所示: 2.2.2 存储器域地址空间到PCI总线域地址空间的转换 MPC8548处理器使用ATMU&#xff…

协程池与新脚本语言

今天的主人公名为——Melang。 这是一款使用C语言开发的“新”的脚本语言,然而其已经默默问世了6年之久。 下面笔者就带你走进Melang world。 What is Melang Melang是一款协程并发脚本语言。它是一款解释型,而非编译型语言。 在Melang中&#xff…

计算机网络期末知识汇总

一、计算机网络概述 1.Internet 的中文译名并不统一。 现有的 Internet 译名有两种: 因特网,这个译名是全国科学技术名词审定委员会推荐的,但却长期未得 到推广; 互联网,这是目前流行最广的、事实上的标准译名。现…

如何在 iPhone 上检索已删除的短信:6个有效方法分享

您是否错误地删除了 iPhone 上的重要短信?或者您可能删除了“消息”应用程序中的整个对话并想将其恢复?无论您的情况如何,有一些数据恢复方法可以帮助您恢复 iPhone 上已删除的邮件。 在本文中,我们将介绍在 iPhone 上恢复丢失、…

大数据 MapReduce如何让数据完成一次旅行?

专栏上一期我们聊到MapReduce编程模型将大数据计算过程切分为Map和Reduce两个阶段,先复习一下,在Map阶段为每个数据块分配一个Map计算任务,然后将所有map输出的Key进行合并,相同的Key及其对应的Value发送给同一个Reduce任务去处理…

idea 以文本形式输出 SpringBoot项目 目录结构

第1步:AltF12 打开 Terminal 终端 第2步:cd 到 项目路径下 第3步:使用 tree 命令 结果 D:. ├─.mvn │ └─wrapper ├─applog │ └─logs ├─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─zhangziwa …

【大数据进阶第三阶段之Hive学习笔记】Hive基础入门

目录 1、什么是Hive 2、Hive的优缺点 2.1、 优点 2.2、 缺点 2.2.1、Hive的HQL表达能力有限 2.2.2、Hive的效率比较低 3、Hive架构原理 3.1、用户接口:Client 3.2、元数据:Metastore 3.3、Hadoop 3.4、驱动器:Driver Hive运行机制…

设计模式之迭代器模式【行为型模式】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某…