




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Python实现视频分解成图片+图片合成视频#fourcc=cv2.cv.CV_FOURCC('M','J','P','G')#opencv版本是2
fourcc=cv2.VideoWriter_fourcc(*'XVID')#opencv版本是3
videoWriter=cv2.VideoWriter(video_dir,fourcc,fps,img_size)
#count=1
foriinim_list:
im_name=os.path.join(im_dir+i)
frame=cv2.imdecode(np.fromfile(im_name,dtype=np.uint8),-1)
videoWriter.write(frame)
#count+=1
#if(count==200):
#print(im_name)
#break
videoWriter.release()
print('finish')
if__name__=='__main__':
im_dir=r'E:\py\python3.7\test\test98youhuashiping\shipingchaifen\pho/'#帧存放路径
video_dir=r'E:\py\python3.7\test\test98youhuashiping\shipingchaifen/test.mp4'#合成视频存放的路径
fps=30#帧率,每秒钟帧数越多,所显示的动作就会越流畅
frame2video(im_dir,video_dir,fps)
提示:路径中不要出现中文和特殊字符,且书写要规范!!
二、python视频拆分+图片合成(源码二)
importcv2
importnumpyasnp
importos
os.chdir(r'E:\py\python3.7\test\test98youhuashiping\chaifen')
##读取视频,并逐帧分解成图片
cap=cv2.VideoCapture('1.mp4')#打开一个视频
isOpened=cap.isOpened()#判断是否打开
print(isOpened)
#获取视频的相关信息,视频的每一帧图片的宽度都是一致的
fps=cap.get(cv2.CAP_PROP_FPS)#帧率,即每秒钟由多少张图片组成
width=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))#获取宽度
height=int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))#获取高度
print(fps,width,height)#输出相关信息
i=0
while(isOpened):
#读取视频的前两秒的图像,共计2*int(fps)张
ifi==int(fps)*2:
break
else:
i=i+1
(flag,frame)=cap.read()#读取每一张flagframe
filename='image'+str(i)+'.jpg'
#将读取的图片写入文件中,
ifflag==True:
cv2.imwrite(filename,frame,[cv2.IMWRITE_JPEG_QUALITY,100])#确定图片质量,100算是高的
print('end!')
##读取零散图片(上面分解的图片),并将其合成视频
img=cv2.imread('image1.jpg')
imginfo=img.shape
size=(imginfo[1],imginfo[0])#与默认不同,opencv使用height在前,width在后,所有需要自己重新排序
print(size)
#创建写入对象,包括新建视频名称,每秒钟多少帧图片(10张),size大小
#一般人眼最低分辨率为19帧/秒
videoWrite=cv2.VideoWriter('2.mp4',-1,10,size)
foriinrange(1,40):
filename='image'+str(i)+'.jpg'
img=cv2.imread(filename,1)#1表示彩图,0表示灰度图
#直接写入图片对应的数据
videoWrite.write(img)
videoWrite.release()#关闭写入对象
print('end')
三、python视频拆分(源码三)
importcv2#导入opencv模块
importos
importtime
defvideo_split(video_path,save_path):
对视频文件切割成帧
@paramvideo_path:视频路径
@paramsave_path:保存切分后帧的路径
vc=cv2.VideoCapture(video_path)
#一帧一帧的分割需要几帧写几
ifvc.isOpened():
rval,frame=vc.read()
else:
rval=False
whilerval:
rval,frame=vc.read()
#每秒提取2帧图片
ifc%2==0:
cv2.imwrite(save_path+"/"+str('%06d'%c)+'.jpg',frame)
cv2.waitKey(1)
c=c+1
DATA_DIR=r"E:\py\python3.7\test\test98youhuashiping\ceshi\mp4"#视频数据主目录
SAVE_DIR=r"E:\py\python3.7\test\test98youhuashiping\ceshi\pho2"#帧文件保存目录
start_time=time.time()
forparents,dirs,filenamesinos.walk(DATA_DIR):
#ifparents==DATA_DIR:
#continue
print("正在处理文件夹",parents)
path=parents.replace("\\","//")
f=parents.split("\\")[1]
save_path=SAVE_DIR+"//"+f
#对每视频数据进行遍历
forfileinfilenames:
file_name=file.split(".")[0]
save_path_=save_path+"/"+file_name
ifnotos.path.isdir(save_path_):
o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025出版合同翻译协议范本
- 2025国际服务贸易合同主体的范围
- 办公电脑软硬件维护服务合同
- 生物技术农业应用合作合同书
- 纺织设计师考试内容纲要试题及答案
- 浙江国企招聘2025温州泰顺县国有企业社会招聘20人笔试参考题库附带答案详解
- 2025河南郑州空中丝路文化传媒有限公司社会招聘6人笔试参考题库附带答案详解
- 2025年福建省福州市中国冶金地质总局二局招聘8人笔试参考题库附带答案详解
- 2025安徽省科创投资有限公司社会招聘10人笔试参考题库附带答案详解
- 高效备考2024年国际商业美术设计师考试试题及答案
- 2025-2030中国无烟原煤行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- GB/T 32960.3-2025电动汽车远程服务与管理系统技术规范第3部分:通信协议及数据格式
- 2024年四川省公安厅招聘警务辅助人员真题
- 突发性聋诊疗指南(2025版)
- 2025年电子信息工程师职业资格考试试卷及答案
- 2025年广东松山职业技术学院单招职业倾向性测试题库
- 创新教学策略在高中物理课堂的应用
- 甘肃武威事业单位招聘考试高频题库带答案2025年
- 2025年全国国家版图知识竞赛题库及答案
- 机械制造及非标零部件加工项目突发环境事件应急预案
- 9.1科学立法 课件高中政治统编版必修三政治与法治
评论
0/150
提交评论