利用视频流截取图片+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训练自己的数据集

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF(Windows Presentation Foundation)是一个基于Windows操作系统的用户界面框架,可以创建丰富的基于Windows的桌面应用程序。WriteableBitmap是WPF中的一个类,可用于在内存中创建可写入和可读取的位图,并对其进行像素级别的操作。 利用WriteableBitmap处理图片流视频是一种比较常见的技术,原理是将视频的每一帧作为位图读入内存中,利用WriteableBitmap的API对每一帧进行处理(如添加滤镜、旋转、缩放等),然后将处理后的位图显示在屏幕上。这种处理方式具有如下几个优点: 1.资源占用低:尤其对于较长的视频来说,只有当前帧的位图会被读入内存,不会占用过多内存资源。 2.实时性强:由于每一帧的位图都会被即时读取和处理,因此可以达到实时展示视频的效果。 3.可定制性高:利用WriteableBitmap的API,可以自由地对视频进行各种处理和操作,满足不同需求。 但是,利用WriteableBitmap处理图片流视频也存在一些问题,如: 1.兼容性较差:WriteableBitmap只支持在WPF中使用,如果需要在其他平台或语言中实现类似功能,需要寻找其他的解决方案。 2.对处理能力要求较高:由于每一帧都需要实时处理,因此对计算能力和内存需求都有一定的要求。 总的来说,利用WriteableBitmap进行图片流视频处理是一种优秀的解决方案,可以达到良好的效果,但需要视具体情况而定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值