python实现视频转图片,图片转视频的功能----解决数据量不足的问题


最近在做一个项目,最主要的问题是数据量不足,而且很难收取,一般的方法是取得小部分数据,然后对其进行扩容



另外一个就是,用手机等有摄像功能的设备区拍摄一段视频,然后对其进行一阵一阵的读取,功能如下

视频转图像:

import cv2
vc = cv2.VideoCapture('视频图片') #读入视频文件
c=0
rval=vc.isOpened()
#timeF = 1  #视频帧计数间隔频率
while rval:   #循环读取视频帧
    c = c + 1
    rval, frame = vc.read()
#    if(c%timeF == 0): #每隔timeF帧进行存储操作
#        cv2.imwrite('smallVideo/smallVideo'+str(c) + '.jpg', frame) #存储为图像
    if rval:
	    #img为当前目录下新建的文件夹
        cv2.imwrite('img/'+str(c) + '.jpg', frame) #存储为图像
        cv2.waitKey(1)
    else:
        break
vc.release()


注释:img/为保存图像的文件,需要提前创建,不然会报错。‘视频图片为视频的位置(这里视频和代码在同一目录下)’


图像转视频:


他的作用不是太大,但也有用,比如,如果你手头没有截视频的软件,你就可以把视频变为图像,然后把不要的图像删除,把剩余的图片转化为视频,这样就可以实现代码截取视频了,代码如下



import cv2
import glob

fps = 20   #保存视频的FPS,可以适当调整

#可以用(*'DVIX')或(*'X264'),如果都不行先装ffmepg: sudo apt-get install ffmepg
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
#saveVideo.avi是要生成的视频名称,(384,288)是图片尺寸
videoWriter = cv2.VideoWriter('saveVideo111.avi',fourcc,(384,288))#括号可能是中文的,改一下,384,288需要改成你的图片尺寸,不然会报错
#imge存放图片
imgs=glob.glob('imge/*.jpg')
for imgname in imgs:
    frame = cv2.imread(imgname)
    videoWriter.write(frame)
videoWriter.release()



你可能感兴趣的:(python实现视频转图片,图片转视频的功能----解决数据量不足的问题)