OpenCV介绍及安装

news2024/12/29 9:40:20

目录

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.coloradmin.cn/o/1282598.html

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

相关文章

OpenGL 和 OpenGL ES 2.0/3.X 一致性测试说明(CTS)

本文档介绍如何构建、移植和运行 OpenGL 和 OpenGL ES 2.0/3.X 一致性测试,以及如何验证和提交测试结果。 [TOC]目录 测试环境要求 一致性测试需要文件系统。文件系统需要支持长文件名(即 > 8.3 名称格式)。一致性测试中的源文件使用大…

全部免费!6个宝藏级别的AI网站!

专注AIGC领域的专业社区,关注百度文心一言等大语言模型(LLM)的发展和应用落地,关注LLM的基准评测和市场研究,欢迎关注! 前两天给大家介绍了一款AI绘图工具fooocus,帮大家把AI绘画的使用门槛大幅…

MQ - KAFKA 高级篇

kafak是一个分布式流处理平台,提供消息持久化,基于发布-订阅的方式的消息中间件,同时通过消费端配置相同的groupId支持点对点通信。 ##适用场景: 构造实时流数据管道,用于系统或应用之间可靠的消息传输.数据采集及处理,例如连接到一个数据库系统,捕捉表…

12-2 Mybatis-Plus与Spring整合

user-springboot programming 实体类 ## 链接数据源 C3p0(原始化) 连接池的数据源 引入mysql 自动配置类DataSource会生效 需要你去配置相关的数据库参数 需要用到连接池 数据源的配置类 SpringBoot的测试类 SpringBootTest 原先是RunWith和Conf…

JAVA高级-1

常用API 第一章 API 产品说明书 第二章 Scanner类(输入) 功能:获取键盘输入 package day7_12.demo01_Scanner;import java.util.Scanner; //1、导包 /* 功能:获取键盘输入引用类型一般使用步骤1、导包:impo…

【高效开发工具系列】gson入门使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

解密Prompt系列20. LLM Agent之再谈RAG的召回多样性优化

几个月前我们就聊过RAG的经典方案解密Prompt系列14. LLM Agent之搜索应用设计。前几天刚看完openAI在DevDay闭门会议上介绍的RAG相关的经验,有些新的感悟,借此机会再梳理下RAG相关的优化方案。推荐直接看原视频(外网)A Survey of …

善网商城上线洁柔产品 公益人专享爱心价官方正品

近日,中国善网慈善商城(以下简称善网商城)系统经升级后重新上线。目前善网商城线上销售的中顺洁柔旗下慈善产品已顺利获得中顺洁柔纸业股份有限公司授权,双方就合作事宜达成共识,并于近日签订线上经营授权书。 &#x…

问题:HTTP method names must be tokens

问题:HTTP method names must be tokens 2023-12-04T09:43:16.65408:00 INFO 7808 --- [nio-6600-exec-1] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request headerNote: further occurrences of HTTP request parsing errors will be logg…

easyrecovery2024最新破解版激活密钥

平时很多人都会把自己工作时,或者生活中的数据存储在我们的电脑上,很多时候,由于我们的误操作或者是其它某些问题,很容易就会误删除一些文件数据了,尤其是一些电脑出现故障,总是会导致数据丢失,…

50 代码审计-PHP无框架项目SQL注入挖掘技巧

目录 演示案例:简易SQL注入代码段分析挖掘思路QQ业务图标点亮系统挖掘-数据库监控追踪74CMS人才招聘系统挖掘-2次注入应用功能(自带转义)苹果CMS影视建站系统挖掘-数据库监控追踪(自带过滤) 技巧分析:总结: demo段指的是代码段,先…

C语言从入门到实战——常用内存函数的了解和模拟实现

常用内存函数的了解和实现 前言1. memcpy使用和模拟实现2. memmove使用和模拟实现3. memset函数的使用4. memcmp函数的使用 前言 内存函数(memory functions)指的是控制计算机内存操作的函数 1. memcpy使用和模拟实现 void * memcpy ( void * destinat…

重生奇迹mu坐骑系统详解

重生奇迹mu最强坐骑排名 1、红色烈焰——炎狼兽。炎狼兽身穿火红色盔甲,远远看去如同一道红色烈焰,非常酷炫,可供多种职业使用,是所有勇士梦寐以求的坐骑。除了可以提高移动速度以外,当年炎狼兽还是勇士们的刷怪利器。…

医院不良事件报告系统源码带鱼骨图分析

医院不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”,结合预存上百套已正在使用的模板,帮助医院从对护理事件、药品事件、医疗器械事件、医院感染事件、输血事件…

紫龙游戏解锁Jira与Perforce的游戏开发行业实践

近日,在龙智携手Atlassian与JFrog共同举办的“大规模开发创新:如何提升企业级开发效率与质量”的线下研讨会中,紫龙游戏上海研发中心高级项目管理主管叶凯威为大家带来了精彩演讲, 分享紫龙游戏的项目管理工具与流程,以…

处理和分析人类语言数据-NLTK安装和使用

简介:NLTK(Natural Language Toolkit)是一个强大的Python库,用于处理和分析人类语言数据,是一个开源的项目,包含:Python模块,数据集和教程,用于NLP的研究和开发&#xff…

微软推出AI助手Copilot的正式版本;ChatGPT:七位研究人员分享他们的观点

🦉 AI新闻 🚀 微软推出AI助手Copilot的正式版本 摘要:微软宣布其AI助手Copilot正式上线,此前Copilot的预览版已成为很多用户的日常AI伴侣。此次上线后,Copilot将继续提供AI驱动的网络聊天体验,并具备商业…

SAP_ABAP_内表数据重复问题,解决思路

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读516次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提供超级燃料!https://blog.csdn.net/j…

终端安全管理软件是监控软件吗

有些人在后台问,终端安全管理软件是监控软件吗? 先回答,是监控软件。 因为它具有监控的功能,在很大程度上,是可以用来当做监控软件来用的。 终端安全管理软件是一种集中管理终端设备的软件工具,可以在企业…

Windows下打包C++程序无法执行:无法定位程序输入点于动态链接库

1、问题描述 环境&#xff1a;CLionCMakeMinGW64遇到问题&#xff1a;打包的exe无法运行&#xff0c;提示无法定位程序输入点于动态链接库。 2、解决思路 ​ 通过注释头文件的方式&#xff0c;初步定位问题是因为使用了#include <thread> 多线程库引起的。而且exe文件…