不知道这 7 大 OpenCV 函数怎么向计算机视觉专家进阶?
作者 | 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 cv2
import matplotlib.pyplot as plotimage = cv2.imread('data.png') #load image
plot.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-即使用像素面积关系进行重采样,还有更多类似的示例
INTER_NEAREST:最近邻插值
INTER_LINEAR:双线性插值
INTER_CUBIC:在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, 3
m = np.zeros(size, dtype=np.uint8)
n = np.ones(size, dtype=np.uint8)
如果想让我多加一个函数的话,我想在这里加上一个转置函数。
7. transpose
如果我们想要转置一个定义好的矩阵,我们所要做的就是使用这个函数:
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]]
搞定了!
原文链接:
https://towardsdatascience.com/top-10-opencv-functions-everyone-has-to-know-about-945f33de8f6f
本文为CSDN翻译文章,转载请注明出处。
推荐阅读
干货 | 时间序列预测类问题下的建模方案探索实践
饿了么交易系统 5 年演化史
360金融首席科学家张家兴:别指望AI Lab做成中台
十六位顶尖专家齐聚,解密阿里云最新核心技术竞争力!
利用 Docker 在不同宿主机做 CentOS 系统容器 | 原力计划
从技术原理解析区块链为何列入新基建
-
你点的每个“在看”,我都认真当成了AI
不知道这 7 大 OpenCV 函数怎么向计算机视觉专家进阶?相关推荐
- imread函数_不知道这 7 大 OpenCV 函数怎么向计算机视觉专家进阶?
作者 | Lazar Gugleta译者 | Arvin,责编 | 夕颜头图 | CSDN付费下载自视觉中国出品 | CSDN(ID:CSDNnews)计算机视觉和计算机图形学现在非常流行,因为它们与 ...
- 每个cver都应该知道的十大OpenCV函数
现在计算机视觉和计算机图形学非常流行,这是因为它们与人工智能有着广泛的联系,它们的主要共同点是使用OpenCV库,以便像人类一样对数字图像或视频(CV)或生成图像(CG)有高层次理解. 这就是为什么今 ...
- OpenCV函数 Laplacian 算子实现
OpenCV函数 Laplacian 实现 Laplacian 算子 的离散模拟. 原理 前一节我们学习了 Sobel 算子 ,其基础来自于一个事实,即在边缘部分,像素值出现"跳跃" ...
- OpenCV函数简记_第三章数字图像的滤波处理(方框,均值,高斯,中值和双边滤波)
系列文章目录 OpenCV函数简记_第一章数字图像的基本概念(邻域,连通,色彩空间) OpenCV函数简记_第二章数字图像的基本操作(图像读写,图像像素获取,图像ROI获取,图像混合,图形绘制) Op ...
- Opencv函数手册
内容包含了Opencv的各种函数的使用中英文详细介绍.唯一的缺点是因为没有顺利,无法检索快速找出来所需要啊的函数. 有木有大神,知道怎样快速的检索Opencv函数的调用介绍?
- csharp通过dll调用opencv函数,图片作为参数
[blog 项目实战派]csharp通过dll调用opencv函数,图片作为参数 一直想做着方面的研究,但是因为这个方面的知识过于小众,也是由于自己找资料的能力比较弱,知道今天才找 ...
- OpenCV函数 Canny 检测边缘
OpenCV函数 Canny 检测边缘. 原理 Canny 边缘检测算法 是 John F. Canny 于 1986年开发出来的一个多级边缘检测算法,也被很多人认为是边缘检测的 最优算法, 最优边缘 ...
- OpenCV使用Sobel或Scharr OpenCV函数进行边缘检测的实例(附完整代码)
OpenCV使用Sobel或Scharr OpenCV函数进行边缘检测的实例 OpenCV使用Sobel或Scharr OpenCV函数进行边缘检测的实例 OpenCV使用Sobel或Scharr O ...
- 【OpenCV】OpenCV函数精讲之 -- 图像容器Mat
Mat是一个类,由两部分组成: 矩阵头(包含矩阵尺寸.存储方法.存储地址等信息) 指向存储所有像素值的矩阵(根据所选存储方法的不同,矩阵可以是不同的维数)的指针 OpenCV中,每个Mat对象有自己的 ...
最新文章
- 【蓝桥java】递归基础之输出连续数字
- MATLAB生成正态样本以及正态矩阵、从文件读入矩阵
- codeforces educational round110 e
- 多级队列调度算法可视化界面_冷月手撕408之操作系统(8)-处理机调度
- 背景差分法android代码,【学术论文】基于背景差分法的尾气烟度检测系统设计...
- C#之http transfer-Encoding模式
- 【一天一个C++小知识】011.C++编译的流程
- [微信小程序开发] mpvue 微信小程序开发使用SASS写样式
- win10 linux 无法下载,更新win10后不能安装ubuntu的解决方法
- 两招快速教会你们PDF怎么转图片jpg格式
- python打开jpg_python如何读jpg文件
- Titan XP值不值?教你如何挑选深度学习GPU
- python 生成词云
- python 爬取动漫之家,下载漫画
- 无人机相关的基本术语小结
- C++实现大整数乘法
- 什么是RTOS系统定义分析
- 数据埋点是什么?设置埋点的意义是什么?
- 济南2022年全面实行电子劳动合同,爱签电子合同为HR赋能增效
- cib.xml for 2resource2group4score
热门文章
- 微信开放平台手机APP支付
- React Native常用组件之ListView
- 《JAVA与模式》之简单工厂模式
- IBM Tivoli Netview在企业网络管理中的实践(附视频)
- Tomcat:Connection reset by peer: socket write error
- Loonframwork到SWT的移植测试(JAVA GAME TEST SOURCE)
- 2020-09-05
- 2018-3-25论文(Whale Optimizer Algorithm)+(Gery Wolf Optimizer)笔记二---Introduction 对比
- Spring AOP无法拦截内部方法调用-- expose-proxy=true用法
- 聊一聊跨域,Vue向Django请求数据的一些问题