img2video
# -*- coding: utf-8 -*-
import cv2
import os
#图片路径
im_dir =r'img_roi'
#输出视频路径
video_dir = '123.mp4'
# cap_fps是帧率,可以根据随意设置;size要和图片的size一样,但是通过img.shape得到图像的参数是
#(height,width,channel),但是此处的size要传的是(width,height),这里一定要注意注意,
# 不然结果会打不开,提示“无法解码多工传送的流”等.比如通过img.shape得到常用的图片尺寸
#(1080,1920,3),则size设为(1920,1080)
fps = 10
#图片数
num = 300
#图片尺寸
img_size = (320,320)
# fourcc = cv2.cv.CV_FOURCC('M','J','P','G')#opencv2.4
# fourcc = cv2.VideoWriter_fourcc('I','4','2','0')
fourcc = cv2.VideoWriter_fourcc('m','p','4','v') # 设置输出视频为mp4格式
videoWriter = cv2.VideoWriter(video_dir, fourcc, fps, img_size)
for i in range(0,len(os.listdir(im_dir))):
im_name = os.path.join(im_dir, os.listdir(im_dir)[i])
print(im_name)
frame = cv2.imread(im_name,1)
videoWriter.write(frame)
videoWriter.release()
print('finish')
video2img
import cv2
import numpy
import os
cap = cv2.VideoCapture("2.mp4")
save="img"
if not os.path.exists(save):
os.makedirs(save)
index=1500
while cv2.waitKey(30)!=ord('q'):
retval, image = cap.read()
if index%15==0:
prefix=str(index).zfill(5)+".png"
cv2.imwrite(os.path.join(save,prefix),image)
cv2.imshow("video",image)
index+=1
cap.release()
vdeo2img2
# # -*- coding:utf8 -*-
import os
import re
import shutil
import cv2
import numpy as np
import shutil
# import ffmpeg
# from cv2 import cv2
file1=r"ZhiYing ultrasound Kidey Data GaoXinQi (2021.4.2~4.14)"
num=4
list1=os.listdir(file1)
index=0
for i in range(0,len(list1)):
path1=os.path.join(file1,list1[i])
print(path1)
list2=os.listdir(path1)
try:
for j in range(len(list2)):
if list2[j].endswith(".mp4"):
video_path=os.path.join(path1,list2[j])
print(video_path)
print(video_path.split(".mp")[0])
tem = video_path.split(".mp")[0]
if os.path.exists(video_path.split(".mp")[0]):
shutil.rmtree(tem)
if not os.path.exists(video_path.split(".mp")[0]):
os.makedirs(tem)
cap = cv2.VideoCapture(video_path)
index_video=0
for i in range(0,int(cap.get(cv2.cv2.CAP_PROP_FRAME_COUNT))):
ret, img = cap.read()
if index_video % num ==0:
prefix=str(index_video).zfill(5)+".png"
cv2.imwrite(os.path.join(tem,prefix),img)
index_video+=1
cap.release()
cv2.destroyAllWindows()
except:
continue
# try:
# for j in range(len(list2)):
# if list2[j].endswith(".mp4"):
# video_path=os.path.join(path1,list2[j])
# print(video_path)
# print(video_path.split(".mp")[0])
# tem = video_path.split(".mp")[0]
# if not os.path.exists(index_video.split(".mp")[0]):
# os.makedirs(tem)
# cap = cv2.VideoCapture(video_path)
# # frame_count = capture.get(cv2.CAP_PEOP_FRAME_COUNT)
# index_video=0
# for i in range(0,capture.get(cv2.CAP_PEOP_FRAME_COUNT),num):
# ret, img = capture.read()
# if index_video % num ==0:
# prefix=str(index_video).zfill(5)+".png"
# cv2.imwrite(os.path.join(index_video,prefix),img)
# index_video+=1
# cap.release()
# cv2.destroyAllWindows()
# except:
# continue