图像其它一些基本的操作
保存图像
cv.imwrite('保存图像时的图像名',需保存图像的定义变量名)
图像形式
图像大小
img.size
单位为像素点
图像数据类型
查看
img.dtype
修改
img = img.astype(numpy.修改类型)
数据读取——视频
·cv2.VideoCapture可以捕获摄像头,用数字来控制不同的设备,例如0,1。
·如果是视频文件,直接指定好路径即可。
读取视频
导入视频
cv2.VideoCapture('视频路径')
在获得视频数据前,我们首先要判断其是否能打开
上述为例
vc.isOpen()
结果返回布尔类型,即视频是否能正常运行
读取视频
vc.read()
该函数返回两个值,分别是读取成功与否和读取到的第一帧的图像
例:
返回值open布尔类型,表示图像第一帧读取成功与否,返回值frame,numpy类型,表示视频的第一帧图像,具体形式可以参考(一)中直接输出的图像结果。
具体读取流程
while open:#循环读取把视频每一帧读出来
ret, frame = vc.read()
if frame is None:#读到最后一帧终止
break
if ret == True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#以灰度图读取每一帧
cv2.imshow('result', gray)
if cv2.waitKey(10) & 0xFF == 27:#终止条件为每一帧展示的时间结束或者输入指定按键,(正常视觉,一秒30帧比较流畅,即每帧33毫秒),0xFF为键盘输入的值,27为退出键(esc)代码
break
vc.release()
cv2.destroyAllWindows()
读取一次后,已达视频最后一帧,所以若要重新读取,需要重新导入
截取部分图像数据
我们可以通过类似索引的方法将我们需要截取查看的部分展现出来
图像定义以img为例
img[a:b,c:d]#a,b,c,d分别为长和宽的上下限
正常读取
截取部分读取
这里cv_show是之前封装好的一个函数
具体为
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()