百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

opencv-python,一个超神的Python库

itomcoil 2025-02-06 15:16 9 浏览

前言

OpenCV(开源计算机视觉库,Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它包含了许多用于实时计算机视觉的优化算法。OpenCV 的主要目标是为计算机视觉应用程序提供一个通用的基础设施,加速计算机视觉应用程序的开发和使用。

OpenCV 提供了许多功能,包括但不限于:

  • 核心功能:包括基本数据结构、线性代数操作、文件输入输出等。
  • 图像处理:包括图像滤波、几何变换、颜色空间转换等。
  • 特征检测与描述:包括关键点检测、描述子提取与匹配等。
  • 视频分析:包括运动估计、背景分割等。
  • 摄像头标定与三维重建:包括摄像头标定、立体视觉等。
  • 机器学习:包括分类、回归、聚类等。
  • 计算摄影:包括图像去噪、HDR图像合成等。
  • 物体识别:包括人脸识别、行人检测等。
  • OpenCV 的 Python 接口:提供了易于使用的 Python API,可以方便地在 Python 代码中调用 OpenCV 的各种功能。

OpenCV 支持多种编程语言,包括 C++、Python、Java 等。在 Python 中,可以使用 OpenCV 的 Python 接口(通常称为 cv2 模块)来调用 OpenCV 的各种功能


一.安装 OpenCV

可以通过pip 快速安装

pip install opencv-python


二.快速入门

  1. 导入 OpenCV 库

在使用的时候首先需要导入opencv库,导入语句如下

import cv2


2.读取图像

使用cv2.imread()函数读取图像。图像应该位于脚本文件的相同目录中,或者你可以提供图像的完整路径。

# 读取图像
image = cv2.imread('py.jpg')


3.显示图像

使用cv2.imshow()函数显示图像。imshow()函数需要参入两个参数,第一个显示图片标题名称,第二个是读取的图片

# 显示图像
cv2.imshow('Image', image)
cv2.waitKey(0)  # 0表示一直等待直到按下任意键
cv2.destroyAllWindows()  # 关闭所有窗口


4.保存图像

使用cv2.imwrite()函数保存图像。

# 保存图像
cv2.imwrite('py1.jpg', image)


5.获取图像属性

使用shape来获取图像的宽度、高度和通道数。

# 获取图像属性
height, width, channels = image.shape
print(f"Width: {width}, Height: {height}, Channels: {channels}")


6.灰度转换

将彩色图像转换为灰度图像。

# 灰度转换
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)


7.边缘检测

使用Canny边缘检测算法检测图像中的边缘。

OpenCV 中的 Canny 边缘检测算法是一种用于检测图像中边缘的技术。边缘是指图像中亮度或颜色发生突变的地方,通常表示物体的轮廓或纹理变化。Canny 边缘检测算法是一种基于梯度的方法,它通过计算图像中每个像素的梯度大小和方向来检测边缘。

# 边缘检测
edges = cv2.Canny(gray_image, 50, 150)


8.绘制图像

在图像上绘制线条、矩形、圆形等。

# 绘制矩形
 # 参数:图像,起点坐标,终点坐标,颜色,线条粗细
cv2.rectangle(image, (0, 0), (200, 200), (0, 255, 0), 5) 


三.注意事项

  1. 安装正确的库:确保使用pip install opencv-python命令安装正确的库。虽然安装命令是opencv-python,但在代码中导入时需要使用import cv2
  2. 依赖库的安装:OpenCV依赖于一些其他的库,如Numpy和matplotlib。在安装OpenCV之前,确保这些依赖库已经安装好。
  3. 图像基本操作:熟悉OpenCV中的图像基本操作,如读入图片、显示图片、保存图片等,这些是进行更复杂操作的基础。
  4. 许可信息:了解OpenCV的许可信息,例如从哪个版本开始使用Apache 2许可。这有助于您在合适的范围内合法地使用OpenCV。
  5. 学习资源:对于初学者来说,找到一个好的学习资源非常重要。可以关注一些专业博客或者教程,这些通常会提供完整的学习路径和总结,帮助您更快上手OpenCV。
  6. 实践操作:计算机视觉是一个实践性很强的领域,因此在学习过程中,不断尝试和实践是非常必要的。通过实际编写代码和解决问题,您可以更好地理解理论和算法。
  7. 社区支持:加入OpenCV的社区或论坛,这样可以在遇到问题时快速获得帮助,同时也能了解到最新的技术动态和最佳实践。
  8. 性能优化:在处理大规模数据或实时应用时,性能优化变得尤为重要。了解如何优化代码和使用OpenCV的高级特性可以提高程序的效率。
  9. 安全性考虑:在使用OpenCV处理敏感图像数据时,要考虑到数据的安全性和隐私保护。确保遵守相关法律法规,对用户数据进行适当的加密和保护。


这些是一些基础的OpenCV用法,适用于初学者。你可以根据自己的需求进一步学习和探索OpenCV的更多功能和高级用法。

更多用法请参考官方文档及其github

https://pypi.org/project/opencv-python/

github地址

https://github.com/opencv/opencv-python

相关推荐

Excel新函数TEXTSPLIT太强大了,轻松搞定数据拆分!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!最近我把WPS软件升级到了版本号:12.1.0.15990的最新版本,最版本已经支持文本拆分函数TEXTSPLIT了,并...

Excel超强数据拆分函数TEXTSPLIT,从入门到精通!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!今天跟大家分享的是Excel超强数据拆分函数TEXTSPLIT,带你从入门到精通!TEXTSPLIT函数真是太强大了,轻松...

看完就会用的C++17特性总结(c++11常用新特性)

作者:taoklin,腾讯WXG后台开发一、简单特性1.namespace嵌套C++17使我们可以更加简洁使用命名空间:2.std::variant升级版的C语言Union在C++17之前,通...

plsql字符串分割浅谈(plsql字符集设置)

工作之中遇到的小问题,在此抛出问题,并给出解决方法。一方面是为了给自己留下深刻印象,另一方面给遇到相似问题的同学一个解决思路。如若其中有写的不好或者不对的地方也请不加不吝赐教,集思广益,共同进步。遇到...

javascript如何分割字符串(javascript切割字符串)

javascript如何分割字符串在JavaScript中,您可以使用字符串的`split()`方法来将一个字符串分割成一个数组。`split()`方法接收一个参数,这个参数指定了分割字符串的方式。如...

TextSplit函数的使用方法(入门+进阶+高级共八种用法10个公式)

在Excel和WPS新增的几十个函数中,如果按实用性+功能性排名,textsplit排第二,无函数敢排第一。因为它不仅使用简单,而且解决了以前用超复杂公式才能搞定的难题。今天小编用10个公式,让你彻底...

Python字符串split()方法使用技巧

在Python中,字符串操作可谓是基础且关键的技能,而今天咱们要重点攻克的“堡垒”——split()方法,它能将看似浑然一体的字符串,按照我们的需求进行拆分,极大地便利了数据处理与文本解析工作。基本语...

go语言中字符串常用的系统函数(golang 字符串)

最近由于工作比较忙,视频有段时间没有更新了,在这里跟大家说声抱歉了,我尽快抽些时间整理下视频今天就发一篇关于go语言的基础知识吧!我这我工作中用到的一些常用函数,汇总出来分享给大家,希望对...

无规律文本拆分,这些函数你得会(没有分隔符没规律数据拆分)

今天文章来源于表格学员训练营群内答疑,混合文本拆分。其实拆分不难,只要规则明确就好办。就怕规则不清晰,或者规则太多。那真是,Oh,mygod.如上图所示进行拆分,文字表达实在是有点难,所以小熊变身灵...

Python之文本解析:字符串格式化的逆操作?

引言前面的文章中,提到了关于Python中字符串中的相关操作,更多地涉及到了字符串的格式化,有些地方也称为字符串插值操作,本质上,就是把多个字符串拼接在一起,以固定的格式呈现。关于字符串的操作,其实还...

忘记【分列】吧,TEXTSPLIT拆分文本好用100倍

函数TEXTSPLIT的作用是:按分隔符将字符串拆分为行或列。仅ExcelM365版本可用。基本应用将A2单元格内容按逗号拆分。=TEXTSPLIT(A2,",")第二参数设置为逗号...

Excel365版本新函数TEXTSPLIT,专攻文本拆分

Excel中字符串的处理,拆分和合并是比较常见的需求。合并,当前最好用的函数非TEXTJOIN不可。拆分,Office365于2022年3月更新了一个专业函数:TEXTSPLIT语法参数:【...

站长在线Python精讲使用正则表达式的split()方法分割字符串详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用正则表达式的split()方法分割字符串详解》。使用正则表达式分割字符串在Python中使用正则表达式的split(...

Java中字符串分割的方法(java字符串切割方法)

技术背景在Java编程中,经常需要对字符串进行分割操作,例如将一个包含多个信息的字符串按照特定的分隔符拆分成多个子字符串。常见的应用场景包括解析CSV文件、处理网络请求参数等。实现步骤1.使用Str...

因为一个函数strtok踩坑,我被老工程师无情嘲笑了

在用C/C++实现字符串切割中,strtok函数经常用到,其主要作用是按照给定的字符集分隔字符串,并返回各子字符串。但是实际上,可不止有strtok(),还有strtok、strtok_s、strto...