我是靠谱客的博主 眼睛大秀发,最近开发中收集的这篇文章主要介绍opencv视频基本操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

      • 1.读取并显示视频
      • 2.保存视频

1.读取并显示视频

代码速记:

  • cv2.VideoCapture()
  • cap.isOpened()
  • cap.open()
  • cap.get()
  • cap.set()
  • cap.read()
  • cap.release()

实战:

def capture(self):
#【1】创建Capture对象
cap = cv2.VideoCapture(0)#参数为设备索引号或视频文件。0为笔记本内置摄像头
if cap.isOpened():#检验摄像头是否打开
print("镜头是打开的")
else:
cap.open(0)#打开摄像头
print(cap.get(0))#参数是0-18的整数,每个数代表视频的一个属性
w=cap.get(3)
h=cap.get(4)
ret=cap.set(3,320)#用set函数来设置某些属性值
ret=cap.set(4,240)
while (True):
#【2】一帧一帧捕获
ret, frame = cap.read()#帧读取正确就返回True。最后检查返回值看是否到视频结尾
# 【3】把该帧图像转为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 【4】显示结果
cv2.imshow('frame', gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 【5】释放Capture对象
cap.release()
cv2.destroyAllWindows()

2.保存视频

代码速记:

  • cv2.VideoWriter_fourcc()
  • cv2.VideoWriter()
  • cv2.flip()
  • out.write()

实战:

def save_video(self):
cap = cv2.VideoCapture(0)
# 定义codec,创建VideoWriter对象
fourcc = cv2.VideoWriter_fourcc(*'XVID')
#FourCC 就是一个4 字节码,用来确定视频的编码格式。
out = cv2.VideoWriter('../res_images/output.avi', fourcc, 20.0, (640, 480))
while (cap.isOpened()):
ret, frame = cap.read()
if ret == True:
frame = cv2.flip(frame, 0)
# 写入flip的帧
out.write(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()

FourCC 就是一个4 字节码,用来确定视频的编码格式。可用的编码列表可以从fourcc.org查到。这是平台依赖的。

  • In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID is more preferable. MJPG results in high size video. X264 gives very small size video)
  • In Windows: DIVX (More to be tested and added)

FourCC 码以下面的格式传给程序,以MJPG 为例:
cv2.VideoWriter_fourcc('M','J','P','G')或者cv2.VideoWriter_fourcc(*'MJPG)

最后

以上就是眼睛大秀发为你收集整理的opencv视频基本操作的全部内容,希望文章能够帮你解决opencv视频基本操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部