Python实现视频分解成图片+图片合成视频_第1页
Python实现视频分解成图片+图片合成视频_第2页
Python实现视频分解成图片+图片合成视频_第3页
Python实现视频分解成图片+图片合成视频_第4页
Python实现视频分解成图片+图片合成视频_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论