利用视频流截取图片+labelimg标注

python通过对话框实现文件或文件夹路径的选择并获得路径_请选择的博客-CSDN博客_python选择文件夹或文件在通过python保存一些文件的时候 ,想要通过对话框的方式来添加文件路径网上可以查到很多资料,但是如果要通过对话框的方式来添加文件夹路径却查了好久也没有查到,最后经过一番查找加理解,终于实现了,我猜没有查到的原因可能是需要文件夹的人比较少吧,大部分直接添加了文件路径。接下来介绍一下在python中如何通过对话框的方式获得文件和文件夹的路径首先导入thinter然后一次打开文件夹选择的对话...https://blog.csdn.net/weixin_42267761/article/details/90443609机器视觉 OpenCV—python 图像数据集获取工具(视频取帧)_SongpingWang的博客-CSDN博客_opencv提取视频帧python一、前言之前在做图像分类的时候,人脸识别(开源代码)的练手,数据集获取麻烦(没人愿意将自己照片给人家做数据集),于是就用自己造数据集,但是拍照拍几百张训练效果不好,也嫌麻烦,干脆就是视频取帧的方式,在这之前使用专门的软件。不过opencv自带了视频处理的API,详细代码如下:二、视频取帧代码import cv2import osimport sysinput_path = s...https://blog.csdn.net/wsp_1138886114/article/details/83013620?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164750693116780271569654%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164750693116780271569654&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-7-83013620.142%5Ev2%5Epc_search_result_control_group,143%5Ev4%5Eregister&utm_term=%E6%88%AA%E5%8F%96%E8%A7%86%E9%A2%91%E5%B8%A7%E8%AE%AD%E7%BB%83&spm=1018.2226.3001.4187

该程序可实现选择文件夹并切分文件夹内所有视频

# This is a sample Python script.

# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
import cv2
import os
#import sys
import tkinter as tk
from tkinter import filedialog

def Video_fetching(input_path,frame_interval):
    filenames = os.listdir(input_path)           # 列出文件夹下所有的视频文件
    video_prefix = input_path.split(os.sep)[-1]  # 获取文件夹名称
    frame_path = '{}_frames'.format(input_path)  # 新建文件夹,名称为原名加上_frames
    if not os.path.exists(frame_path):
        os.mkdir(frame_path)

    cap = cv2.VideoCapture()  # 初始化一个VideoCapture对象

    for filename in filenames:
        if filename.endswith('.mp4'):
            filepath = os.sep.join([input_path, filename])
            cap.open(filepath)                                 # VideoCapture::open函数可以从文件获取视频
            n_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))  # 获取视频帧数

            for i in range(42):  # 为了避免视频头几帧质量低下,黑屏或者无关等
                cap.read()
            for i in range(n_frames-42):
                ret, frame = cap.read()

                # 每隔frame_interval帧进行一次截屏操作
                if i % frame_interval == 0:
                    s_temp='_'
                    imagename = '{}_{}_{:0>6d}.jpg'.format(s_temp, filename.split('.')[0], i)
                    imagepath = os.sep.join([frame_path, imagename])
                    print('exported {}!'.format(imagepath))
                    cv2.imwrite(imagepath, frame)

        else:
            print('This file is not video')
    cap.release()  # 执行结束释放资源
if __name__=="__main__":
   # if len(sys.argv) < 2:
        print ('依次传入参数:视频片段的路径(文件夹),设定每隔多少帧截取一帧int(20)')
        '''打开选择文件夹对话框'''
        root = tk.Tk()
        root.withdraw()
        Folderpath = filedialog.askdirectory()  # 获得选择好的文件夹

       # Folderpath1 = filedialog.askdirectory() # 输出文件夹
        #Filepath = filedialog.askopenfilename()  # 获得选择好的文件
        print('Folderpath:', Folderpath)
       # print('Folderpath1:', Folderpath1)
        #print('Filepath:', Filepath)
        Video_fetching(Folderpath,10)
        exit(0)




# See PyCharm help at https://www.jetbrains.com/help/pycharm/

​​​​​​目标检测使用LabelImg标注VOC数据格式和YOLO数据格式——LabelImg使用详细教程_点亮~黑夜的博客-CSDN博客_labelimg yolo格式Yolov5训练自己的数据集(详细完整版)_缔宇的博客-CSDN博客_yolov5训练自己的数据集

你可能感兴趣的:(深度学习,python)