每个cver都应该知道的十大OpenCV函数
现在计算机视觉和计算机图形学非常流行,这是因为它们与人工智能有着广泛的联系,它们的主要共同点是使用OpenCV库,以便像人类一样对数字图像或视频(CV)或生成图像(CG)有高层次理解。
这就是为什么今天我们要来看一看在计算机科学领域里,对于同样的库,有哪些函数是你最能从中受益的!
在讨论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
cvtColor
加载图像后,还可以使用cvtColor中的不同标志将其转换为不同的配色方案。
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)
它获取原始图像,并按尺寸创建一个新图像。尺寸定义为:
dimension = (width, height)
插值是一种重采样图片的方法,在我的例子中,它使用基于INTER_AREA的区域间重采样,还有更多类似的方法
INTER_NEAREST: 最近邻插值
INTER_LINEAR: 双线性插值
INTER_CUBIC: 4×4像素邻域上的双三次插值
INTER_LANCZOS4: 8×8邻域上的Lanczos插值
https://scc.ustc.edu.cn/zlsc/sugon/intel/ipp/ipp_manual/IPPI/ippi_appendices/ippi_appB_LanczosInterpolation.htm
split/merge
每张图片有3个通道,如果我们想把它们分割成不同的图片,我们可以使用分割函数来实现。
(channel_b, channel_g, channel_r) = cv2.split(img)
如果图像是BGR格式,它会将每个通道分成你定义的三个变量。
如果你已经分割通道,但希望将它们合并到一起,你可以使用merge。
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个维度)。
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]]
原文链接:https://towardsdatascience.com/top-10-opencv-functions-everyone-has-to-know-about-945f33de8f6f
留言送书福利
在前两天的文章中,小编寻找的那位中奖的小伙伴,一直没有联系小编,小编只有把书籍转赠他人啦...
小编看了下在留言主题“你怎么看待我们开展的送书活动,你有什么好的活动建议么?”留言的小伙伴中,有一个小伙伴经常留言(小编都记着你了),但是一直没有被小编选中,现在,机会来了,作为在没中过奖的小伙伴中,留言次数最多的你,小编决定把这本书赠送给你。
恭喜下面留言的这位读者获赠书籍《Halcon机器视觉算法原理与编程实战》一本。请联系小编:mthler。
☆ END ☆
如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文(无广告)。
↓扫描二维码添加小编↓
每个cver都应该知道的十大OpenCV函数相关推荐
- 不知道这 7 大 OpenCV 函数怎么向计算机视觉专家进阶?
作者 | Lazar Gugleta 译者 | Arvin,责编 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 计算机视觉和计算机图形学现在非常流行,因 ...
- imread函数_不知道这 7 大 OpenCV 函数怎么向计算机视觉专家进阶?
作者 | Lazar Gugleta译者 | Arvin,责编 | 夕颜头图 | CSDN付费下载自视觉中国出品 | CSDN(ID:CSDNnews)计算机视觉和计算机图形学现在非常流行,因为它们与 ...
- 慧都独家揭晓国外十大Mac和iOS应用开发工具
iOS应用开发工具选择对了,距离应用的成功开发就近了一步.慧都为了帮助广大的Mac和iOS开发者提高开发速度和质量,特地对目前市面上最为优秀的10款用于Mac和iOS的应用开发工具一一进行盘点. 如果 ...
- 10个性鼠标指针主题包_每个人都应该知道的十大电脑鼠标使用技巧,别说你不知道...
电脑鼠标是我们日常使用频率最高的一个设备,但遗憾的是,大多数计算机用户都没有充分利用计算机鼠标.下面我就给出一些使用计算机鼠标的提示和秘密,以帮助大家充分发挥计算机鼠标的潜力,并提高整体工作效率. 1 ...
- 金杉号:2022年十大农村暴利养殖项目推荐,农业科技养殖致富项目有哪些
今天给大家分享十个高收益养殖项目,想赚钱的别错过.1养殖肉驴,肉驴开发价值非常高,不仅驴肉可以吃,驴皮也可以入药,养殖风险小,潜力大.2养殖黄鳝,黄鳝又称为水中人参,它的食用价值,药用价值都非常高,养 ...
- 华中科技大学 计算机 院士,中国全职院士数量十大高校,清华院士团队老化,中科华科潜力最大...
全职院士数量十大高校 两院院士是中国科研最高学术帽子 "两院院士"是对中国科学院院士和中国工程院院士的统称,分别代表自然科学领域的中国科学院院士和代表工科类的中国工程院院士,每年的 ...
- 台湾前十大科技公司拼不过三星(往后一点三星都不要买啦!)
台湾前十大科技公司拼不过三星,往后一点三星都不要买啦!本来还可以买它的内存和液晶,不过现在是一点都不能买了,再买就真反了他了! 三星像糖果也像毒药,让台湾LED类股1年涨3倍,但也让鸿海市值一夜之间消 ...
- 2020十大新兴技术揭晓!每一项都可能颠覆我们的生活
转自丨科技日报 作者丨张佳欣 编辑丨翟丽影 全世界都在竞相研发新冠肺炎疫苗,前景令人鼓舞,我们可能会在破纪录的时间内研发出疫苗.但在未来新冠疫情仍在蔓延的情况下,技术能帮助我们更快地实现目标吗?世界经 ...
- 看看数据科学家们都在用什么:Github上的十大深度学习项目
本文作者Matthew May是一位正在进行并行式机器学习算法研究的计算机硕士研究生,同时Matthew也是一位数据挖掘研习者,数据发烧友,热忱的机器学习科学家.开源工具在数据科学工作流中起到了愈发重 ...
最新文章
- Windows下使用Visual Studio自带的MSVC,命令行编译C/C++程序
- 用集合java字符串第一个单词_Java小程序 输入一个字符串,将每一个单词首字母大写...
- PHP ftp_mkdir 函数
- 无法加载主类的10中方法
- Swap空间利用率不释放
- 寄存器计算软件/寄存器小精灵
- lucene Field部分参数设置含义
- java web后台_java web 后台那些事
- 利用pushState开发无刷页面切换
- C++基于STL的演讲比赛流程管理系统
- php7 jpgraph,JpGraph4.0.2中文乱码以及在php7.0版本无法显示的解决办法
- 计算机历史记录无法删除,win10时间线灰色浏览记录删不掉怎么回事_win10时间线历史灰色无法删除的解决教程-win7之家...
- DIY面试题 for AI产品经理 | “智能音箱半夜诡异笑声”的原因分析及建议方案
- python instagram 爬虫
- 【转】Unity5 新AssetBundle打包方式 BuildPipeline.BuildAssetBundles
- 服务器dns被劫持如何修复,电脑DNS被劫持如何解决?电脑DNS被劫持的解决方法
- linux tao环境 安装_linux编译TAO的问题,求高手指导!!!!
- OpenTSDB搭建过程(CDH环境,kerberos认证)
- 在 Beagleboard-x15 上配置 spi 和 GPIO
- 什么是编译程序(含翻译程序、解释程序和中间代码的定义介绍)
热门文章
- [好玩的CMD]CMD批处理绘制彩色的像素画
- JavaScript特效之图片提示框
- 小公司请多做减法,少谈管理
- 修复浏览器首页被hao123劫持的问题(亲身经历)
- 飞桨学习赛:英雄联盟大师预测2023年2月85.365分方案
- android camera 闪光灯关闭,Android控制闪光灯的方法(打开与关闭)
- 【算法】考前整理复习
- python利用实现pyinstaller打包多文件打包
- [TPAMI-2023] Learning to Extract Building Footprints From Off-Nadir Aerial Images
- 1-2023年浙大MBA提面优秀资格获取心得