每个人都应该知道的十大OpenCV函数

码界流光
• 阅读 1694

作者|Lazar Gugleta
编译|Flin
来源|towardsdatascience

计算机视觉和计算机图形学现在非常流行,因为它们与人工智能有着广泛的联系,它们的主要共同点是使用同一个OpenCV库,以便像人类一样对数字图像或视频(CV)或生成图像(CG)有高层次理解。

这就是为什么今天我们要看一看在计算机科学领域里,对于同样的库,有哪些函数是你最能从中受益的!

每个人都应该知道的十大OpenCV函数

在讨论OpenCV的强大功能之前,让我们先看看计算机视觉、计算机图形学和OpenCV的定义,以便更好地理解我们在这里所做的工作。

计算机视觉

计算机视觉是一个跨学科的领域,涉及如何使计算机获得对数字图像或视频的高层次理解。从工程的角度来看,它试图使人类视觉系统能够完成的任务自动化,也就是说,它希望像人类一样“看懂”世界。

计算机图形学

计算机图形学是计算机科学中的一个分支,它研究如何借助计算机生成图像。如今,计算机图形学是数字摄影、电影、视频游戏、手机和计算机显示等许多专业应用领域的核心技术。

OpenCV

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。OpenCV的建立是为了为计算机视觉应用提供一个通用的基础设施,并加速机器感知在商业产品中的应用。

该图书馆提供处理和分析图像内容的工具,包括识别数字照片中的对象(如人的脸和图形、文本等)、跟踪对象的运动、转换图像、应用机器学习方法以及识别各种图像中的公共元素。

一旦我们解决了这个问题,我们可以从我个人选择的十大函数开始。(使用Python编写函数)

每个人都应该知道的十大OpenCV函数

imread/imshow

这个函数必须放在首位,因为要用一张图片开始你的项目,此函数是必不可少的。从函数名可以猜到,它加载了BGR(Blue-Green-Red)格式的图像。

import cv2
import matplotlib.pyplot as plot
image = cv2.imread('data.png') #load image
plot.imshow(image) #show image

每个人都应该知道的十大OpenCV函数

cvtColor

加载图像后,还可以使用cvtColor中的不同标志将其转换为不同的配色方案。

cv2.cvtColor(image,cv2.COLOR_BGR2RGB)

下面是cvtColor的一些其他标志:COLOR_BGR2GRAY、COLOR_BGR2HSV和COLOR_BGR2YUV等。

这是双向的,例如,COLOR_YUV2BGR也是可能的。

每个人都应该知道的十大OpenCV函数

resize

有时你只需要一个不同于原来大小的图像,所以resize就是你需要的函数。

cv2.resize(image, dimension, interpolation = cv2.INTER_AREA)

它获取原始图像,并按尺寸创建一个新图像。尺寸定义为:

dimension = (width, height)

插值是一种重采样图片的方法,在我的例子中,它使用基于INTER_AREA的区域间重采样,还有更多类似的方法

  1. INTER_NEAREST: 最近邻插值
  2. INTER_LINEAR: 双线性插值
  3. INTER_CUBIC: 4×4像素邻域上的双三次插值
  4. INTER_LANCZOS4: 8×8邻域上的Lanczos插值

每个人都应该知道的十大OpenCV函数

split/merge

每张图片有3个通道,如果我们想把它们分割成不同的图片,我们可以使用分割函数来实现。

(channel_b, channel_g, channel_r) = cv2.split(img)

如果图像是BGR格式,它会将每个通道分成你定义的三个变量。

如果你已经分割通道,但希望将它们合并到一起,你可以使用merge。

cv2.merge(channel_b, channel_g, channel_r)

每个人都应该知道的十大OpenCV函数

vconcat / hconcat

使用vconcat()hconcat()垂直和水平连接(合并)图像。

v表示垂直,h表示水平。

cv2.vconcat([image1, image2])
cv2.hconcat([image1, image2])

每个人都应该知道的十大OpenCV函数

ones/zeros

如果要在三维图像(矩阵)中都填充1或0(因为矩阵要求彩色图像具有3个维度)。

size = 200, 200, 3
m = np.zeros(size, dtype=np.uint8)
n = np.ones(size, dtype=np.uint8)

作为一个附加函数,我想在这里添加一个东西,那就是转置函数。

transpose

如果我们有一个要转置的已定义矩阵mat,我们所要做的就是直接对mat使用这个函数:

import numpy as np  
mat = np.array([[1, 2, 3], [4, 5, 6]])  
mat_transpose = mat.transpose()
print(mat_tranpose)

得到输出:

[[1 4]  
 [2 5]  
 [3 6]]
#original input
[[1, 2, 3]
 [4, 5, 6]]

下一个步骤

这主要是为初学者准备的,但是下节课我们将介绍OpenCV更高级的特性。

原文链接:https://towardsdatascience.co...

欢迎关注磐创AI博客站:
http://panchuang.net/

sklearn机器学习中文官方文档:
http://sklearn123.com/

欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/

点赞
收藏
评论区
推荐文章
不是海碗 不是海碗
2年前
关于AI 绘画,我给你总结了一份详细的关键词(Prompt 知识)
AI绘画是利用人工智能技术进行图像生成和图像编辑的过程。它主要包括两个方面,一个是基于机器学习的图像生成,另一个是基于计算机视觉技术的图像编辑。
红橙Darren 红橙Darren
4年前
NDK开发前奏 - 实现支付宝人脸识别功能
1.基于AndroidStudio的opencv配置与使用先推荐一本书《计算机视觉算法与应用》,相信用过OpenCV的哥们都知道这是用来干啥的,这里我就不再啰嗦。只说一下他的应用领域:人机互动、物体识别、图像分割、人脸识别、动作识别、运动跟踪、机器人、运动分析、机器视觉、结构分析、汽车安全驾驶等等。这次我们主要用它来做人脸识别,注意人脸
胡赤儿 胡赤儿
1年前
深入探索人工智能与计算机视觉
在当今数字化时代,人工智能(AI)和计算机视觉(CV)作为两大前沿技术,正以惊人的速度改变着我们的生活。本文将深入探讨人工智能与计算机视觉的关系、应用以及未来发展方向。1.人工智能与计算机视觉的关系人工智能是一门涵盖众多技术领域的学科,旨在使计算机系统能够
Stella981 Stella981
3年前
SpringBoot使用OpenCV总结
前言最近有个项目需要对图片图像进行处理,使用到了开源框架OpenCV全称是OpenSourceComputerVisionLibrary,是一个跨平台的计算机视觉库;而现在的项目都是基于SpringBoot,需要把OpenCv整合进去,下面把在使用中遇到的问题进行一个汇总整理。下载安装Opencv官网提供了一个多个平台的版
Stella981 Stella981
3年前
Serverless 实战:用 20 行 Python 代码轻松搞定图像分类和预测
图像分类是人工智能领域的一个热门话题,通俗来讲,就是根据各自在图像信息中反映的不同特征,把不同类别的目标区分开。图像分类利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,代替人的视觉判读。在实际生活中,我们也会遇到图像分类的应用场景,例如我们常用的通过拍照花朵来识别花朵信息,通过人脸匹对人物信息等。通常,图像识别或分
Easter79 Easter79
3年前
SpringBoot使用OpenCV总结
前言最近有个项目需要对图片图像进行处理,使用到了开源框架OpenCV全称是OpenSourceComputerVisionLibrary,是一个跨平台的计算机视觉库;而现在的项目都是基于SpringBoot,需要把OpenCv整合进去,下面把在使用中遇到的问题进行一个汇总整理。下载安装Opencv官网提供了一个多个平台的版
幂简集成 幂简集成
7个月前
火爆全网的AI+视频API推荐
AI视频通常指的是由人工智能(AI)技术生成或处理的视频。这可能包括使用深度学习、计算机视觉和其他相关技术来改善视频的质量、内容或生成全新的视频内容。长期以来,人们对AI视频技术应用的认知停留在各种“换脸”和视频特效上。随着AI图像领域的技术发展,AI视频
计算机视觉与信息取证技术讲解
今晚20:0022:00人工智能技术与自信计算机视觉就是用各种成像系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释。计算机视觉的最终研究目标就是使计算机能象人那样通过视觉观察和理解世界,具有自主适应环境的能力。要经过长期的努力才能达到的目标。因此,在实现最终目标以前,人们努力的中期目标是建立一种视觉系统,这个系统能依据视觉敏感和反馈的某
码界流光
码界流光
Lv1
一别家山音信杳,百种相思,肠断何时了。
文章
5
粉丝
0
获赞
0