用opencv提供的python接口从视频里面提取帧有点问题

青鸟明丹 青鸟明丹 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用同学给的脚本从视频里面提取帧的时候发现,这个脚本之提取整个视频前几秒的帧。比方说一个视频有10秒,这个脚本只提取第一秒里的帧,后面的就不管了。不知问题出在哪儿。请指教,谢谢!代码如下:


#coding=utf-8

import os
import cv2


global lines
#从txt文本里读取视频路径和fps
#fps表示每fps帧提取一帧
with open("config.txt") as f:
lines=f.readlines()

videopath=lines[0]
videopath=videopath.strip()
videopath=videopath[10:]
fps=lines[1]
fps=fps.strip()
fps=int(fps[4:])


mycount=0


for path,directory,filelist in os.walk(videopath):
for myfile in filelist:
if myfile.endswith("MOV"):
vpath=path+'\\'+myfile
cap=cv2.VideoCapture(vpath)
index=len(videopath)
newPath=path[0:index]+'\\Picture'+path[index:]+"\\"
if(os.path.exists(newPath))==False:
os.makedirs(newPath)
totalframe = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
for i in range(totalframe):
if i % fps == 0:
ret, frame = cap.read()
mycount = "%.6d" % mycount;
print (newPath + str(mycount) + '.jpg')
cv2.imwrite(newPath + str(mycount) + '.jpg', frame)
mycount = int(mycount)
mycount += 1

...全文

相关推荐

关键帧提取_关键帧_python_视频处理_提取关键帧

**OpenCV介绍**:OpenCV是一个强大的计算机视觉库,提供了多种图像和视频处理功能,包括关键帧提取。它支持Python接口,使得Python开发者可以轻松地进行图像和视频处理。2.

心梓

python工具方法 2 利用opencv按帧提取视频中的图片

import cv2 import os #要提取视频的文件名,隐藏后缀 sourceFileName='a2' #在这里把后缀接上 video_path = os.path.join("", "", sourceFileName+'.mp4') times=0 #提取视频的频率,每25帧提取一个 frameFrequency=25 #输出图片到当前目录vedio文件夹下 outPutDirNa...

万里鹏程转瞬至

CV | Python + OpenCV从视频中提取“指定帧”

简介 其实已经写过两篇关于从视频中提取关键帧的博客了。但是今天把代码又修改完善了一下,感觉比之前的几个版本都好(哈哈自夸中。。。),因此再次贴出利用OpenCV从视频中提取关键帧的Python代码。 程序 功能:自动的读取指定文件夹下的所有文件,并且按照文件类型和名称的不同,提取该文件夹下所有视频,并按照名称的不同,分类保存从视频中提取的关键帧。 import cv2 import os # ...

lovetaozibaby

Python OpenCV实现视频分帧

这项技术可以将连续的视频流分割成一系列独立的图像帧,为后续的数据分析、图像识别等任务提供便利。下面,我们将详细介绍如何使用Python结合OpenCV库来实现视频分帧的功能。

weixin_38581447

采用Opencv实现对视频信号的实时采集与帧提取.zip

OpenCV支持C++、Python等多种编程语言,为开发者提供了高效且易于使用的接口。在人工智能领域,OpenCV常用于图像识别、目标检测、人脸识别、视频分析等任务。

Nowl
评论 3
收藏 已收藏
分享
返回顶部
青鸟明丹
脚本语言 37,738 成员 34,208 内容