不知道这 7 大 OpenCV 函数怎么向计算机视觉专家进阶?

百家 作者:AI100 2020-05-09 15:50:19

作者 | Lazar Gugleta
译者 | Arvin,责编 | 夕颜
头图 | CSDN付费下载自视觉中国
出品 | CSDN(ID:CSDNnews)
计算机视觉和计算机图形学现在非常流行,因为它们与人工智能息息相关,它们主要的共同点是使用同一个OpenCV库,以理解数字图像或视频(CV)或生成图像(CG)中深层含义。
             
这就是为什么我们今天要分析为计算机科学众多重要领域提供动力的OpenCV库,找出对我们有用的重要函数!

在介绍OpenCV的强大功能之前,让我们看一下计算机视觉、计算机图形学和OpenCV的定义,以更好地了解我们今天的内容。


计算机视觉


计算机视觉是一个跨学科领域,研究如何使计算机获得对数字图像或视频的高级理解。从工程学的角度来看,它试图将人类视觉系统能够完成的任务实现自动化。


计算机图形学

计算机图形学是计算机科学的一个分支,致力于借助计算机生成图像。如今,计算机图形学已成为数字摄影,电影,视频游戏,手机和计算机显示器以及许多专用应用程序中的核心技术。


OpenCV


OpenCV(开源计算机视觉库,Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。OpenCV的构建旨在为计算机视觉应用程序提供一个通用的基础结构,并加速机器感知在商业产品中的使用。
该库提供了用于处理和分析图像内容的工具,包括识别数码照片中的对象(例如人脸和人物,文本等),跟踪对象的运动,转换图像,应用机器学习方法以及识别各种图像中的共同元素。
       
解决了上述问题,就可以开始介绍我选出的十大函数了。(以下使用Python编写函数代码)




1. imread / imshow
 
这个功能必须是第一位的,因为它是项目中读取图像必不可少的函数。从函数的名称可以猜到,它以BGR(蓝绿红)格式加载图像。
import cv2import matplotlib.pyplot as plot
image = cv2.imread('data.png') #load imageplot.imshow(image) #show image
 


    


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

cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
以下是cvtColor的一些其他标志:COLOR_BGR2GRAY、COLOR_BGR2HSV和COLOR_BGR2YUV,等等。       
      
这些标志都是双向的,所以COLOR_YUV2BGR也是可以的。
 
3. 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插值

 
             
4. split/merge
 
每张图片都有3个通道,如果我们想将它们分割成单独的图像,可以使用分割函数来实现。

(channel_b,channel_g,channel_r)= cv2.split(img)
 
如果图像是BGR格式,它将把每个通道分成你定义的那三个变量。

在拆分通道之后,如果想将它们合并回去,可以使用merge

cv2.merge(channel_b,channel_g,channel_r)
 
             

5. vconcat / hconcat
 
使用vconcat(),hconcat()可以在水平和垂直方向上连接(合并)图像。v表示垂直,h表示水平。

cv2 .vconcat([image1,image2])cv2 .h concat([image1,image2])

 
6. ones/zeros
 
因为图像(Mat)要求彩色图像具有3个层/维度,所以需要在Mat所有的三个维度中都填充1或0。

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

如果想让我多加一个函数的话,我想在这里加上一个转置函数。
 
7. transpose
 
如果我们想要转置一个定义好的矩阵,我们所要做的就是使用这个函数:

import numpy as npmat = 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]]

搞定了!

原文链接:
https://towardsdatascience.com/top-10-opencv-functions-everyone-has-to-know-about-945f33de8f6f

本文为CSDN翻译文章,转载请注明出处。

推荐阅读


    你点的每个“在看”,我都认真当成了AI

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接
百度热搜榜
排名 热点 搜索指数