python将视频一帧一帧_python 实现视频 图像帧提取

python 实现视频 图像帧提取

如下所示:

import cv2

vidcap = cv2.VideoCapture('005.avi')

success,image = vidcap.read()

count = 0

success = True

while success:

success,image = vidcap.read()

cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file

if cv2.waitKey(10) == 27:

break

count += 1

waitKey()函数详解

1--waitKey()--这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环)

2--如下所示: while(1){ if(waitKey(100)==27)break; } 在这个程序中,我们告诉OpenCv等待用户触发事件,等待时间为100ms,如果在这个时间段内, 用户按下ESC(ASCII码为27),则跳出循环,否则,不跳出循环

3--如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件

videoCapture.read() 函数,第一个返回值为是否成功获取视频帧,第二个返回值为返回的视频帧:

success, frame = videoCapture.read()

cv2.VideoWriter(filename, fourcc, fps, framesize, isColor)–视频写入/出

使用这个函数可以创建一个用于写出视频文件的句柄,第一个参数为写出的视频文件的名字/路径&

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提取视频的关键,可以使用以下算法: 1. 首先,将视频分成一些连续的。可以使用OpenCV这样的库来做到这一点。 2. 计算每一帧与前一帧之间的差异。可以使用像素差异或直方图差异等方法来计算之间的差异。 3. 根据差异值确定关键。如果差异值超过一个设定的阈值,则认为该是关键。可以通过试验找到一个合适的阈值。 4. 将关键保存下来。可以将关键保存为图像文件,或将其插入到视频中。 下面是一个简单的Python代码示例,演示如何使用OpenCV库提取视频的关键: ``` import cv2 # 打开视频文件 cap = cv2.VideoCapture('video.mp4') # 读取第一帧 ret, frame1 = cap.read() # 初始化前一帧 prev_frame = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY) # 设置阈值 threshold = 10000 # 提取关键 key_frames = [] while True: # 读取当前 ret, frame2 = cap.read() if not ret: break # 将当前转换为灰度图像 curr_frame = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY) # 计算之间的差异 diff = cv2.absdiff(curr_frame, prev_frame) # 检查差异是否超过阈值 if diff.sum() > threshold: key_frames.append(frame2) # 更新前一帧 prev_frame = curr_frame # 保存关键 for i, key_frame in enumerate(key_frames): cv2.imwrite(f'key_frame_{i}.jpg', key_frame) # 释放视频文件 cap.release() ``` 这个代码示例打开一个名为`video.mp4`的视频文件,提取其中的关键,并将它们保存为图像文件。关键的阈值设置为`10000`,可以根据需要进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值