def ReadVideos(self): ''' 主要功能是从视频中读取图像并重命名后保存在指定的文件夹中 函数输入:无 隐藏输入: self.opts:'video_image_dir','video_vr_opts','video_group_num', 'video_wait' 函数输出:无 隐藏输出: self.video_list , self.video_num 自定义函数调用: self.GetFiles self.SaveVideoImages VideoReader ''' # 获得文件夹中的所有视频文件 file_list = self.GetFiles() print(f'INFO:Find {len(file_list)} Files with ', end='') # 判断是不是视频格式 self.video_list = FilesFilter(file_list, _VIDTYPE_LIST) self.video_num = len(self.video_list) print(f'{len(self.video_list)} Videos') # 在源文件目录下创建存放源图像文件的目录,此目录及其中的文件会被保留 video_image_dir = self.opts['video_image_dir'] if not os.path.exists(video_image_dir): os.makedirs(video_image_dir) # 对每个视频进行读取、保存 for video_name in self.video_list: vr_opts = copy.deepcopy(self.opts['video_vr_opts']) vr = VideoReader(video_name, opts=vr_opts) if self.opts['video_group_num']: vr.AutoSet(self.opts['video_group_num']) vr.PrintVideoInfo() image_groups_arrays = vr.GetAllGroups() self.SaveVideoImages(image_groups_arrays, video_name) # 询问是否暂停来检查输出是否符合预期 if (self.opts['video_wait']): print('\nINFO:Video read complete ', f', Please check the pictures in folder {video_image_dir} ', ',input Y or y to continue') while (True): cin = input() if (cin is 'Y' or cin is 'y'): break else: print('input Y or y to continue')