img2video和video2img

 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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CVer儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值