OpenCV的基本操作

今天这一篇文章主要记录一下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))
最后,附上完整代码,方便大家复现,下一篇文章就要开始学习图像色彩空间的转换,还需努力。如果有任何问题欢迎在底下评论,我们一起交流,一起加油!
import cv2 as cvimport numpy as np def access_pixel(image):#属性的读取 print(image.shape) height = image.shape[0] width = image.shape[1] channels = image.shape[2] print(width: %s, height: %s, channels: %s%(width,height,channels)) #遍历每一个像素点,太慢了,更新 for row in range(height): for col in range(width): for c in range(channels): pv = image[row,col,c] image[row,col,c] = 255-pv cv.imshow(numpy_test,image) def inverse(img): dis = cv.bitwise_not(img) cv.imshow(inverse,dis) def create_image(): ''' img = np.zeros([400,400,4],np.uint8) img[ :, :,0] = np.ones([400,400])*255 #对通道进行赋值,0是蓝通道,1是绿通道,2是红色通道,多通道 cv.imshow(new_image,img) ''' #初始化灰度图像 img2 = np.zeros([400,400,1],np.uint8) img2[:,:,0] = np.ones([400,400])*127 #img2 = img2*127 cv.imshow(new_image_2,img2) #维度变换 m1 = np.ones([3,3],np.uint8) m1.fill(12222.388) print(m1) m2 = m1.reshape([1,9]) print(m2) print(---------hello-----python--------------------)src = cv.imread(d:/1.png)cv.namedwindow(input image,cv.window_autosize)cv.imshow(input image,src)t1 = cv.gettickcount()#access_pixel(src)#create_image()inverse(src)t2 = cv.gettickcount()#测试时间消耗time = (t2-t1)/cv.gettickfrequency()print(time:%s ms%(time*1000))cv.waitkey(0)cv.destroyallwindows()

原文标题:【cv学习笔记】opencv基本操作
文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

太阳能电池板的容量大小、计算和电池配置
为维护国家安全,部分无人机今起实施出口管制
酷冷至尊MB510L机箱体验 入门级DIY玩家选用
物联网产品天线测试客户案例
互联网+时代 冰箱智能制造技术愈发的先进了
OpenCV的基本操作
精确评估ARM IP的模型工具,ARM Cycle Models
三星Galaxy Fold折叠屏手机已弥补了之前的缺陷将于近期重新上市
5kW高稳定度电源模块概述
中本聪留言,比特币是一个错误?
美国国会议员认为对区块链实行监管会影响其带来的效率
微处理器散热保护电路的设计
新吉奥年产9万台新能源车身项目顺利通过竣工验收
看懂机器学习和人工智能千丝万缕的关系
华为云OBS对象存储:企业“上云”的好帮手
vivo推演5G防治能力,5G将促使疫情防控更高效
OLED面板将大幅提升5G时代网络的连接速度和设备存储空间
变频器节能技术的工作原理及其应用分析
操作教程 | 如何将聚合编码器连接到KiloLink聚合服务器并进行推流直播
腾讯广告数据管理平台开始后台系统改造