前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CV学习笔记(二):OpenCV基本操作

CV学习笔记(二):OpenCV基本操作

作者头像
云时之间
发布2020-02-13 12:57:54
4170
发布2020-02-13 12:57:54
举报
文章被收录于专栏:云时之间

今天这一篇文章主要记录一下OpenCV中一些基本的操作,包括读取图片,视频以及反转图像的几种操作:

一:图片的载入

图片载入很常用,很实用。。。

二:读取视频

读取视频分为从摄像头中读入和从硬盘中读入,如果是摄像头就在videocapture函数中填写数值,0是默认的第一个摄像头,1.是第二个,以此类推,如果没有外置摄像头,就直接“”填写路径就行。

三:打印图片的类型

图片的信息主要包括图片的类型,图片的尺寸,图片的长宽高以及通道数,如果是彩色图片通道数就是3,如果是黑白的图片通道数为1。

我这里定义了一个函数来输出图片的信息:

这里可以看到:

图片的大小是589*646的彩色3通道图片,编码方式是uint8.

四:图像的对比度转换

我们知道图像的像素数是从0-255,如果实现图像的反转只需要遍历每个像素然后每个像素减去255即可,这里用一个笨方法实现以下:

得出的结果是这样:

似乎转换了以后的图片还挺好看的。

当然,这样的方法太过于复杂,并且执行时间,效率都很低:

用时长达4555毫秒。。。

这时候我们使用OpenCV自带的bitwise_not函数:

因为底层是使用的C++语言进行封装,所以执行快得多,来对比下:

同样的一张图只需要17ms,舒服多了。

五:时间消耗的计算

上图中的测试时间的计算用到了两个函数:

GetTickcount函数:它返回从操作系统启动到当前所经历的计时周期数

GetTickFrequency函数:返回每秒的计时周期数

使用的方法:

t1 = cv.getTickCount()

#你需要的测试的函数或代码

t2 = cv.getTickCount()

time = (t2-t1)/cv.getTickFrequency()

print("time:%s ms"%(time*1000))

最后,附上完整代码,方便大家复现,下一篇文章就要开始学习图像色彩空间的转换,还需努力。如果有任何问题欢迎在底下评论,我们一起交流,一起加油!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档