OpenCV4.0安装 Windows10环境或Ubuntu18.04环境_ubuntu18.04中使用opencv4.9.0-程序员宅基地

技术标签: OpenCV4.0学习  

OpenCV4.0安装指南

Windows10环境

1.安装VS2019

由于windows环境下面配置Cmake比较复杂因此大多数选择使用VS2019
前往Visual Studio官网下载安装包选则下面的社区版
在这里插入图片描述
下载完成后双击开始安装,这里为了节省内存空间只安装与C++有关的几个组件,
注意: VS2019安装时会在D盘缓存安装时的文件,这些文件存储在下图红色框的目录下面,请不要将其删除,不然下次VS2019在更新和安装一些有用的插件将会出现错误.
在这里插入图片描述
勾选C++桌面应用开发,点击下载并安装
在这里插入图片描述
至此IDE的安装完成

2. OpenCV配置

  1. 首先下载Windows版本的OpenCV官网点击下载4.0以上的Windows版本进行下载.
  2. 下载后双击文件开始进行解压缩, 这是笔者的安装目录D:\Program Files\opencv
  3. 配置环境变量
    选择桌面上此电脑右键选择属性, 按照下面图片中的步骤打开环境变量配置窗口
    在这里插入图片描述
    在这里插入图片描述
    4.打开VS2019, 新建一个工程选择控制台应用程序
    修改Debug位数(OpenCV只能使用64位的编译器)
    在这里插入图片描述
    选中工程名称右键选择属性查看头文件头文件,以及库文件目录
    这里为了永久配置OpenCV头文件和库文件目录,简便方法就是将其拷贝到VS2019默认的头文件目录下面 在这里插入图片描述
    在这里插入图片描述
    查看头文件目录选择第一个目录作为拷贝的目标目录
    D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.24.28314\include
    这时将OpenCV目录下的opencv2拷贝到上述目录下面
    在这里插入图片描述
    查看库文件目录选择第一个目录作为拷贝的目标目录D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.24.28314\lib\x64
    这时将OpenCV目录下的lib中的库文件拷贝到上述目录下面
    在这里插入图片描述
    至此我们完成头文件与库文件的包含,以后再新建工程的时候将会默认将opencv的头文件和库文件包含进来,可以直接使用.

为了通过编译我们还需要将工程文件和库文件链接起来.
选中工程右键属性按照下述图片选择链接器将OpenCV的库文件链接进来
注意:后缀带有d的位Debug模式下的库文件,不带有d的是Release模型下需要的库文件
在这里插入图片描述

3.代码测试

在刚刚建立起来的工程文件中编写如下代码

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
int main()
{
    
	Mat image;
	image = imread("beach.jpg", IMREAD_COLOR);  // 读入RGB图像
	if (image.empty())
	{
    
		std::cout << "can not find this image" << std::endl;
		return -1;
	}
	imshow("image", image);
	waitKey(0); 
	return 0;
}

在工程目录下面添加一幅图像,并将图像名称添加到imread()函数中替换成你自己的图像名称.编译程序,运行.如果顺利的话图像就会显示到你的屏幕上.
在这里插入图片描述

Ubuntu18.04环境

1. 首先配置所需要的依赖库

Ctrl + Alt + T 打开终端通过install安装如下依赖库
sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev

2.下载安装包

前往OpenCV官网下载linux版本的安装包点击
Sources选择4.0版本以上的版本进行下载
若官网的下载速度较慢,可以到笔者的网盘中下载
链接:https://pan.baidu.com/s/1MxeJ7jeK40GXsoVO4kK4ag
提取码:ygfb

3.进入下载好的目录

打开终端进入当前目录依次输入如下命令

cd opencv-4.0.0
mkdir build
cd build
cmake ..
make -j4
sudo make install

至此已经完成了OpenCV的安装

4.测试

mkdir test_OpenCV
cd test_OpenCV
gedit image.cpp

输入如下代码:

#include <iostream>  
#include <opencv2/opencv.hpp>  
using namespace cv;  
int main(int argc, char** argv )  
{
      
    if ( argc != 2 )  
    {
      
        std::cout << "usage: image.out <image_Path>" << std::endl;  
        return -1;  
    }  
    Mat image;  
    image = imread( argv[1], IMREAD_COLOR );  
    if ( !image.data )  
    {
      
       	std::cout << "can not find image!!!!" << std::endl; 
        return -1;  
    }  
    namedWindow("Display Image", WINDOW_AUTOSIZE );  
    imshow("Display Image", image);  
    waitKey(0);  
    return 0;  
}  

创建Cmake编译文件

gedit CMakeLists.txt

输入如下内容:

cmake_minimum_required(VERSION 2.8) 

project( DisplayImage ) 

find_package( OpenCV REQUIRED ) 

add_executable( DisplayImage image.cpp ) 

target_link_libraries( DisplayImage ${OpenCV_LIBS} )

编译
cmake .
make
运行
此时opencv-test文件夹中已经产生了可执行文件DisplayImage, 随便找一张图片放在这个文件中用于演示,以假设图像名为beach.jpg运行

./DisplayImage beach.jpg

结果

将会在屏幕上面显示刚刚放在目录下面的图像,表示使用成功.
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zpwhust/article/details/104534332

智能推荐

android支付宝动画,android仿照支付宝支付成功的动画一-程序员宅基地

文章浏览阅读217次。上边是效果图 上边是依据两种方式实现的,先说地一个效果的实现要实现地一个效果,肯定需要掌握path,patnMeasure,valueAnimator这里跟自定义view关系不是很大思路1 先实现一个静态的效果(用path来绘制) (为什么使用path呢?因为使用path我们可以用pathMeasure来测量出path没一个点的坐标)2 然后用pathMeasure来测量path然后结合value..._安卓支付宝点击最小化的动效

前端将二进制数据流转为文件_JavaScript前端开发之实现二进制读写操作-程序员宅基地

文章浏览阅读2.3k次。关于javascript前端开发之实现二进制读写操作的相关介绍,请看以下内容详解,本文介绍的非常详细,具有参考价值。由于种种原因,在浏览器中无法像nodejs那样操作二进制。最近写了一个在浏览器端操作读写二进制的帮助类!function (entrance) {"use strict";if ("object" === typeof exports && "undefined" !..._js实现多条二进制转成完整的数据

剑指offer-数组中的逆序对_倒转数组为什么要取mid-程序员宅基地

文章浏览阅读957次。数组中的逆序对题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如: 例如,有一个数组为Array[0..n] 其中有元素a[i],a[j].如果 当i< j时,a[i]>a[j],那么我们就称(a[i],a[j])为一个逆序对。在数组{7,5,6,4}中一共存在5对逆序对,分别是(7,6),(7,5),_倒转数组为什么要取mid

绕过cdn探测真实ip方法大全_cdn nmap-程序员宅基地

文章浏览阅读7.3k次,点赞17次,收藏77次。渗透测试过程中,需要寻找真实IP的情况,就是目标使用了cdn。CDN现在大多数的网站都开启了CDN加速,导致我们获取到的IP地址不一定是真实的IP地址。CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息_cdn nmap

DEDE整站动态化或整站静态化设置方法,织梦栏目批量静态/动态方法-程序员宅基地

文章浏览阅读187次。跟版网建站接到一个朋友提问,100多各栏目全部要从动态变成静态,里面的文章也要静态化,如何更快捷的设置dede的静态化或者动态化呢?直接用DEDE后台的SQL命令行工具,SQL语句:DEDE整站动态化:将所有文档设置为“仅动态”,update dede_archives set ismake=-1将所有栏目设置为“使用动态页”,update ded..._织梦怎样把每个栏目都静态化

数理逻辑之 horn公式-程序员宅基地

文章浏览阅读5.3k次,点赞2次,收藏9次。Horn公式,中文名一般翻译成“霍恩公式”,也是范式的一种。Horn原子有三:P::= ┴ | T |p Horn原子 分别是底公式、顶公式和命题原子。 Horn原子合取后的蕴含称为Horn字句:A::= P | PΛA C::= A → P Horn子句 继续合取就是Horn公式:H::= C | CΛH Horn公..._霍恩公式

随便推点

4. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识wrk、wrk2-程序员宅基地

文章浏览阅读223次。1. 前言上一篇文章我们了解了bombardier,并知道了bombardier.yml与开源项目bombardier的关系,接下来的文章我们了解一下wrk、wrk2,并对比一下它们与bo..._wrk2 恒定吞吐量 constant throughput

Linux三剑客传 | AWK_ifconfig ens192 | grep "netmask" | awk -f-程序员宅基地

文章浏览阅读170次。AWK使用方法概述awk同sed命令类似,只不过sed擅长取行,awk命令擅长取列。(根据了解awk是一种语言,不过我们只关注他处理文本的功能,用的好的话几乎可以取代excel)原理:一般是遍历一个文件中的每一行,然后分别对文件的每一行进行处理用法:awk [可选的命令行选项] ‘BEGIN{命令 } pattern{ 命令 } END{ 命令 }’ 文件名打印某几列$ echo ..._ifconfig ens192 | grep "netmask" | awk -f

AWS S3 实现预签名上传_aws 签名上传-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏9次。步骤:1、前端上传文件,将要上传的文件名称传到后台2、后台通过该文件名称生成预上传URL返回前端3、前端请求该URL,并携带文件上传至S3后端代码 /** * AWS预签名上传 * @return */ @GetMapping("/uploadFile") public Object generatePreSignedUrlAndUploadObject(String fileName){ Map<St._aws 签名上传

UnrealEngine4蓝图功能_关卡切换后的玩家出身点定位功能实现_ue切换关卡后改变位置-程序员宅基地

文章浏览阅读5.9k次,点赞3次,收藏28次。 (文章为自己制作学习过程中的技术总结,如有不正确的理解,欢迎批评指正) 对于很多游戏都存在多个关卡,而每个关卡之间也是会有进有出,当然除去利用levelstreaming技术通过程序控制动态载入载出的情况,因为那种情况互相之间不存在出生点的设置,基本都是在一个父关卡里无缝衔接的,所以本篇不谈此类关卡流的情形,只谈及针对不同关卡切换时如何实现出生点的设置(比如level01是家..._ue切换关卡后改变位置

如何查看Linux服务器中所有正在运行的进程服务?_colord.service-程序员宅基地

文章浏览阅读4.2k次。有许多方法和工具可以查看 Linux 中所有正在运行的服务。大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/init.d/service-name status,而在 systemd 初始化系统中使用 systemctl status service-name。查看服务进程:ps aux查看服务cpu利用:top查看服务对应端口:netstat -nlp以上命令可以清楚地显示该服务是否在服务器上运行,这也是每个 L_colord.service

YOLOV5之提高模型评估和测试方法(TTA、Ensemble、WBF)_yolo tta-程序员宅基地

文章浏览阅读5.3k次,点赞4次,收藏45次。本指南解释了如何在测试和推断改进的mAP和Recall过程中使用YOLOv5模型集成。2022年1月25日更新。集成建模是一个过程,通过使用许多不同的建模算法或使用不同的训练数据集,创建多个不同的模型来预测结果。然后,集合模型将每个基本模型的预测聚合起来,并对未见数据产生一次最终预测。使用集成模型的动机是为了减少预测的泛化误差。当采用集成方法时,只要基本模型是不同的和独立的,模型的预测误差就会减小。这种方法在预测中寻求群体的智慧。尽管集成模型在模型中有多个基本模型,但它作为单个模型进行操作和执行。1_yolo tta

推荐文章

热门文章

相关标签