前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV-Python学习教程.2

OpenCV-Python学习教程.2

作者头像
云深无际
发布2021-04-14 11:05:05
7090
发布2021-04-14 11:05:05
举报
文章被收录于专栏:云深之无迹云深之无迹
代码语言:javascript
复制
ls -al /dev/ | grep video

如果你用Linux得设备,可能会用到这里来看有没有设备被安全挂载。因为没有一个图形化的页面来方便的查看。

子Linux不是太好使


代码语言:javascript
复制
# 获取视频帧的宽
w = fcap.get(cv2.CAP_PROP_FRAME_WIDTH)
# 获取视频帧的高
h = fcap.get(cv2.CAP_PROP_FRAME_HEIGHT)
# 获取视频帧的帧率
fps = fcap.get(cv2.CAP_PROP_FPS)

对于一个视频来说,这三个量是必要的。其实有一些视频的设备是返回不来这些个值得

对于我们单帧得读取照片来说接口就是这个样子得

ret就是return得意思,其实这个返回值是可以自己写得

ret只不过是我们约定俗成得而已


该接口会返回两个参数,第一个参数是读取成功与否标志位,成功为True否则为False,第二个参数则为具体的帧数据,其是一个numpy.ndarray的数组。

对于视频流可能会失败得读取一帧,可以写这样得循环来保证读取成功

这里推荐一个路径补全的插件

很方便的自动补全

代码语言:javascript
复制
import cv2
import numpy

img = cv2.imread('./img/111.jpg', 0)
cv2.imshow('img', img)
cv2.waitKey(1)

注意一定要有后面的waitkey参数,不然一闪而过

代码语言:javascript
复制
读取图片,第二个参数0是灰色,1是彩色

然后会返回一个负值

cv2.imread()的函数原型为Mat imread( const string& filename, int flags=1 ),其中Mat为Opencv最重要的数据结构,它在Opencv中被定义为一个类,它通过把图像视为一个矩阵来存储数据。

这个是Mat的类型,C++里面的mat类型


在cv2.imread()中,它有两个形参,首先是图像的文件名(索引地址),第二个参数flags用于指定以什么样的格式来读取图像,它的取值有以下几种情况:

  (1)flags=1,这也是默认情况,代表选择CV_LOAD_IMAGE_UNCHANGED方式,即采用保持原始格式的方式读取图像。比如待读取的图像原来是灰度图像,读取后还是灰度图像。

  (2)flags=2,这种情况代表选择CV_LOAD_IMAGE_GRAYSCALE方式,即以灰度图像格式读取图像。无论原始图像原来是什么格式,读取后都的结果都转变为灰度图像。

  (3)flags=3,这种情况代表选择CV_LOAD_IMAGE_COLOR方式,即以BGR格式读取图像。无论原始图像原来是什么格式,读取后都的结果都转变为BGR形式的三通道图像。

我建议是用属性名的写法,不要写这个数字。

对于imshow函数,opencv的官方注释指出:根据图像的深度,imshow函数会自动对其显示灰度值进行缩放,规则如下:

如果图像数据类型是8U(8位无符号),则直接显示。

如果图像数据类型是16U(16位无符号)或32S(32位有符号整数),则imshow函数内部会自动将每个像素值除以256并显示,即将原图像素值的范围由[0~255*256]映射到[0~255]

如果图像数据类型是32F(32位浮点数)或64F(64位浮点数),则imshow函数内部会自动将每个像素值乘以255并显示,即将原图像素值的范围由[0~1]映射到[0~255](注意:原图像素值必须要归一化)

我们尝试看看这个图像的矩阵形式

结果

继续来看看是什么样的数据结构

出现了

读取的图像如果通过numpy.asarray()转换为多维数组类型,即转换后的数组形状为[Height, Width, Channels]。


接下来的文章会继续深入学习cv2.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

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

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

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