OpenCV介绍及安装

目录

1.OpenCV简介

2.OpenCV安装

3.检查OpenCV是否安装成功

4.OpenCV模块

5.学习技巧


1.OpenCV简介

        OpenCV(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,主要用于图像处理、计算机视觉和机器学习等领域,实现了图像处理计算机视觉方面的很多通用算法,已成为计算机视觉领域最有力的研究工具。在这里我们要区分图像处理和计算机视觉两个概念:图像处理侧重于“处理”图像–如增强,还原,去噪,分割等等;而计算机视觉重点在于使用计算机来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。

        OpenCV-Python库提供了大量的函数和类,用于图像加载、保存、显示、绘制、变换、滤波、特征检测、视频处理等。它支持多种图像格式,包括常见的JPEG、PNG、BMP等,也支持通过摄像头或视频文件获取实时视频流。OpenCV-Python还提供了一些机器学习算法的实现,如人脸识别、目标检测、图像分类等。

        OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS, 如今也提供对于C#、Ch、Ruby,GO的支持。

        OpenCV最初于1999年由Intel公司的俄罗斯一团队发起建立,并于2000年以BSD许可证的形式发布,如今由Willow Garage公司提供支持。到目前(2023年9月)最新是4.x版本。

2.OpenCV安装

        因为本文学习主要是使用OpenCV提供的python接口,所以这里也是仅介绍python版OpenCV的安装。python安装opencv,需要使用以下安装命令:

#安装OpenCV的python库:
pip install opencv-python#安装指定的OpenCV版本:
pip install opencv-python==3.4.2.16#使用国内镜像源安装:
pip install opencv-python==3.4.2.16 -i https://pypi.tuna.tsinghua.edu.cn/simple

        说明:

  1. opencv-python表示python版的opencv接口模块,使得开发者可以使用Python进行图像处理和计算机视觉的开发工作。。
  2.  opencv-python需要依赖numpy库,pip install numpy。

        3.安装指定版本opencv-python==3.4.2.16,因为此版本之后,一些经典算法被申请了专利,做了很大限制。

        4.python版本:建议用python 3.7或者3.6版本,高于3.7可能无法使用安装opencv-python==3.4.2.16版本。

       5.如果要用到SIFT和SURF等进行特征提取时,还需要安装:

pip install opencv-contrib-python==3.4.2.16

3.检查OpenCV是否安装成功

import cv2# 导入图片
img = cv2.imread('close.png')
cv2.imshow('image', img)# 按任意键,关闭弹框
cv2.waitKey(0)
cv2.destroyAllWindows()

使用该代码读取一张图像,能正确显示即表示安装成功。 

4.OpenCV模块

OpenCV有很多模块,最基本的模块core、hightgui、imgproc。模块分布如下所示:

core模块:实现了最核心的数据结构及基本算法,如绘图函数、数组操作相关函数等。

highgui模块:实现了视频与图像的提取、显示和存储等。

imgproc模块:实现了图像处理的基础方法,包括图像滤波、图像的几何变换、平滑、阈值分割、形态学处理、边缘检测、目标检测、运动分析和对象跟踪等。

进阶高层次的方向,opencv也有相关的模块:

feature2d模块:用于提取图像特征以及特征匹配,nonfree(非免费即收费)模块实现了一些专利算法,如sift特征。而opencv-python==3.4.2.16版本,都是免费模块,没有收费模块。

objdetect模块:实现了一些目标检测的功能,经典的基于Haar、LBP特征的人脸检测,基于HOG的行人、汽车等目标检测,分类器使用cascade、classification(级联分类)和latent SVM等。

stitching模块:实现了图片的拼接功能,如遥感影像拼接。

FLANN模块(Fast Library for Appproximate Nearest Neighbors):包含了快速近似最近邻搜素FLANNel和聚类Clustering算法。

ml模块:机器学习模块(SVM、决策树、Boosting等等)

photo模块:包含图像修复和图像去噪两部分。

video模块:针对视频处理,如背景分离、前景检测、对象跟踪等。

calib3d模块(即Calibrain 校准 3D),主要是相机校准和3d重建相关的内容,包含了基本的多视角几何算法、单个立方体摄像头标定,物体姿态估计,立体相似性算法,3d信息的重建等。

G-API模块:包含超高效的图像处理pipeline引擎。

5.学习技巧

        可以使用dir()函数和help函数帮助我们查询OpenCV-Python模块的更多知识。dir(cv2)可以帮助我们快速查询OpenCV的类和函数,help(cv2)可以帮助我们快速查找OpenCV中的模块。

大写字母对应的是OpenCV中的类.

小写的对应的是OpenCV中的方法。 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

干货|水表基础知识大全

第一部分 水表基础知识 第一节 水表的作用 水表:是用来记录流经自来水管道中水量的一种计量器具,也称为计量器具。 1、水表的发展简史 1825年英国的克路斯发明了真正具有仪表特征的平衡罐式水表以来,水表的发展已有近二百年的历史。期间,水表的结构…

Day13——泛型

1.泛型 1.1 介绍 所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值或参数的类型。这个类型参数将在使用时(例如,继承或实现这个接口、创建对象或调用方法时)确定(即传入…

你知道 n 进制如何转化为 m 进制吗?

更好的阅读体验,请点击 进制转换 | YinKais Blog 程序介绍:n 进制数转换器 这个简单的C程序是一个 n 进制数转换器,可以将一个给定的 n 进制数按照用户指定的进制进行转换。用户需要提供三个输入:原始进制,待转换的数…

目标检测中的损失函数:IOU_Loss、GIOU_Loss、DIOU_Loss和CIOU_Loss

文章目录 前言1.IOU_Loss(Intersection over Union Loss)2.GIOU_Loss(Generalized Intersection over Union Loss)3.DIOU_Loss(Distance Intersection over Union Loss)4.CIOU_Loss(Complete In…

行云创新:与德国汽车业交流Catena-X数据空间技术有感

近日,行云创新CEO马洪喜先生受深圳高新投、Plug&Play邀请参加Catena-X技术研讨交流会,与西门子全球汽车生态系统总监Claus CREMERS,大众汽车全球数字化生产及流程负责人Frank GOELLER,宝马全球数字化政策负责人Sebastian SCHL…

Gensim训练中文词向量实战

引言 实现文本匹配模型时经常需要预训练好的中文词/字向量,今天通过gensim和中文维基百科数据训练一个中文字向量。 安装相关包 首先要安装所需的几个包: zhconv 1.4.3 gensim 4.3.2由于中文维基百科是繁体字,需要用zhconv转换为简体&…

【国际会议】2024年材料科学与机械应用发展国际会议(ICMSMAD 2024)

2024年材料科学与机械应用发展国际会议(ICMSMAD 2024) 2024 International Conference on Materials Science and Mechanical Application Development(ICMSMAD 2024) 一、【会议简介】 ​2024年材料科学与机械应用发展国际会议(ICMSMAD 2024)即将在美丽的中国成都盛大召开。这…

贪心法之柠檬水找零

题目: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。 你必须给每个顾客正确找零&am…

使用gdb调试正在运行的程序

写一个一秒打印一个数的c程序&#xff0c;并编译运行。 #include<unistd.h> #include<stdio.h> int main(int argc,char **argv){int i0;while(1){sleep(1);i;printf("%d\n",i);}return 0; }vim loop.c gcc loop.c -o loop ./loop 查看该进程的进程号。…

《数据库系统概论》学习笔记——王珊 萨师煊

第一章 绪论 一、数据库系统概述 1.数据库的4个基本概念 &#xff08;1&#xff09;数据 描述事物的符号记录称为数据 &#xff08;2&#xff09;数据库 存放数据的仓库 &#xff08;3&#xff09;数据库管理系统 主要功能&#xff1a; &#xff08;1&#xff09;数据定…

APP逆向工具环境安装

环境安装及配置&#xff1a; 1.JDK安装及配置链接&#xff1a;https://pan.baidu.com/s/146I4vDJdz8YeR0OEqLS8xw 提取码&#xff1a;7h00 2.SDK环境配置链接&#xff1a;https://pan.baidu.com/s/1A8rwqyw8Nn7p93Axqpll3A 提取码&#xff1a;cwv43.NDK环境配置链接&#xff1…

【Spark基础】-- 理解 Spark shuffle

目录 前言 1、什么是 Spark shuffle? 2、Spark 的三种 shuffle 实现 3、参考 前言 以前,Spark 有3种不同类型的 shuffle 实现。每种实现方式都有他们自己的优缺点。在我们理解 Spark shuffle 之前,需要先熟悉 Spark 的 execution model 和一些基础概念,如:MapReduce、…

【问题】C++ libcurl实现PUT时阻塞问题

解决方案 将 curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);换成 curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT"); 原因 在项目中对方要求使用PUT来发送控制指令&#xff0c;于是直接使用Libcurl来实现。原本是一个非常简单的事情&#xff0c;确怎么都没发…

SpringBoot:SpringMVC(上)

文章目录 前言一、SpringMVC是什么&#xff1f;1.1 MVC的定义&#xff1a;1.2 MVC 和 Spring MVC 的关系 二、Spring MVC 创建和连接2.1创建springmvc2.2接下来&#xff0c;创建⼀个 UserController 类&#xff0c;实现⽤户到 Spring 程序的互联互通&#xff0c;具体实现代码如…

MYSQL练题笔记-聚合函数-即时食物配送

我做完上一道题&#xff0c;决定总结一下了&#xff0c;因为现在还是没有一个我认为好的思路去构造语句&#xff0c;这里开始试一试新的思路。果然想要好一点的时候&#xff0c;总是像便秘一下&#xff0c;真的想拉&#xff0c;但是真的难拉啊 一、题目相关内容 1&#xff09…

科普关于msvcp140.dll文件是什么内容,解决msvcp140.dll丢失的修复方法

在使用电脑时出现了关于msvcp140.dll丢失的问题&#xff0c;这是什么情况&#xff0c;出现这样的问题通常都会导致电脑中的一些软件不能使用&#xff0c;那么都有什么办法能够解决msvcp140.dll丢失的问题呢&#xff1f;今天就给大家科普一些关于msvcp140.dll文件是什么的内容&a…

小程序长按识别二维码

小程序开发中要实现长按识别二维码的功能很简单&#xff0c;只需要在image标签里添加如下属性即可&#xff1a; 小程序版本&#xff1a; show-menu-by-longpress"{{true}}" uniapp版本&#xff1a; :show-menu-by-longpress"true" 举例&#xff1a; …

小红书种草笔记多少钱?给大家揭秘

小红书&#xff0c;一个以生活方式分享为主题的社交电商平台&#xff0c;吸引了众多年轻用户。种草笔记&#xff0c;是指用户在小红书上分享的关于某一产品或服务的使用体验、心得感悟&#xff0c;通过图文并茂的形式&#xff0c;激发其他用户的好奇心和购买欲望&#xff0c;从…

资深老鸟整理,高级测试工程师应具备的能力...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、业务熟悉 熟悉…

在国内Facebook广告怎么解决充值渠道问题?

怎么解决Facebook预充值跑广告营销的付款方式问题呢&#xff1f; Facebook跑广告是很多做出口营销的公司或团队喜欢的平台之一&#xff0c;那就避免不了需要支付给Facebook平台广告费用了&#xff0c;那到底用什么方式去充值到FB号上去解决呢&#xff1f;FB预充值有什么咔可以…