欢迎大家来到IT世界,在知识的湖畔探索吧!
计算机视觉和计算机图形学现在非常流行,因为它们与人工智能有着广泛的联系,它们的主要共同点是使用同一个OpenCV库,以便像人类一样对数字图像或视频(CV)或生成图像(CG)有高层次理解。
这就是为什么今天我们要看一看在计算机科学领域里,对于同样的库,有哪些函数是你最能从中受益的!
欢迎大家来到IT世界,在知识的湖畔探索吧!
在讨论OpenCV的强大功能之前,让我们先看看计算机视觉、计算机图形学和OpenCV的定义,以便更好地理解我们在这里所做的工作。
计算机视觉
计算机视觉是一个跨学科的领域,涉及如何使计算机获得对数字图像或视频的高层次理解。从工程的角度来看,它试图使人类视觉系统能够完成的任务自动化,也就是说,它希望像人类一样“看懂”世界。
计算机图形学
计算机图形学是计算机科学中的一个分支,它研究如何借助计算机生成图像。如今,计算机图形学是数字摄影、电影、视频游戏、手机和计算机显示等许多专业应用领域的核心技术。
OpenCV
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。OpenCV的建立是为了为计算机视觉应用提供一个通用的基础设施,并加速机器感知在商业产品中的应用。
该图书馆提供处理和分析图像内容的工具,包括识别数字照片中的对象(如人的脸和图形、文本等)、跟踪对象的运动、转换图像、应用机器学习方法以及识别各种图像中的公共元素。
一旦我们解决了这个问题,我们可以从我个人选择的十大函数开始。(使用Python编写函数)
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
欢迎大家来到IT世界,在知识的湖畔探索吧!
cvtColor
加载图像后,还可以使用cvtColor中的不同标志将其转换为不同的配色方案。
欢迎大家来到IT世界,在知识的湖畔探索吧!cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
下面是cvtColor的一些其他标志:COLOR_BGR2GRAY、COLOR_BGR2HSV和COLOR_BGR2YUV等。
这是双向的,例如,COLOR_YUV2BGR也是可能的。
resize
有时你只需要一个不同于原来大小的图像,所以resize就是你需要的函数。
cv2.resize(image, dimension, interpolation = cv2.INTER_AREA)
它获取原始图像,并按尺寸创建一个新图像。尺寸定义为:
欢迎大家来到IT世界,在知识的湖畔探索吧!dimension = (width, height)
插值是一种重采样图片的方法,在我的例子中,它使用基于INTER_AREA的区域间重采样,还有更多类似的方法
- INTER_NEAREST: 最近邻插值
- INTER_LINEAR: 双线性插值
- INTER_CUBIC: 4×4像素邻域上的双三次插值
- INTER_LANCZOS4: 8×8邻域上的Lanczos插值
split/merge
每张图片有3个通道,如果我们想把它们分割成不同的图片,我们可以使用分割函数来实现。
(channel_b, channel_g, channel_r) = cv2.split(img)
如果图像是BGR格式,它会将每个通道分成你定义的三个变量。
如果你已经分割通道,但希望将它们合并到一起,你可以使用merge。
欢迎大家来到IT世界,在知识的湖畔探索吧!cv2.merge(channel_b, channel_g, channel_r)
vconcat / hconcat
使用vconcat(),hconcat()垂直和水平连接(合并)图像。
v表示垂直,h表示水平。
cv2.vconcat([image1, image2]) cv2.hconcat([image1, image2])
ones/zeros
如果要在三维图像(矩阵)中都填充1或0(因为矩阵要求彩色图像具有3个维度)。
欢迎大家来到IT世界,在知识的湖畔探索吧!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)
得到输出:
欢迎大家来到IT世界,在知识的湖畔探索吧![[1 4] [2 5] [3 6]] #original input [[1, 2, 3] [4, 5, 6]]
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/131130.html