def write_video(write_path, vidreader, smoothMasks, window_centers, window_sizes, num_blocks, num_prev_frames, rsz_shape=[80, 60]): create_folder_structure_if_not_exists(write_path) shape = [vidreader.width, vidreader.height] vidwriter = VideoWriter(write_path, vidreader.width, vidreader.height) vidwriter.build() vidreader.__reset__() skip_frames = num_prev_frames + num_blocks / 2 vidreader.skip_frames(skip_frames) frame_idx = 0 numFrames = len(smoothMasks) while (frame_idx < numFrames): frame = vidreader.read_next() if frame is None: break frame = draw_rect(frame, window_centers[frame_idx], window_sizes, shape) name = "test_results/tracking/track{0}.png".format(frame_idx) cv2.imwrite(name, frame) vidwriter.write(np.uint8(frame)) frame_idx += 1 vidwriter.close()
def write_video(vidreader, out_path, num_prev_frames, num_blocks, smoothMasks, vaMasks): create_folder_structure_if_not_exists(out_path) start = time.time() vidwriter = VideoWriter(out_path, vidreader.width * 2, vidreader.height) vidwriter.build() vidreader.__reset__() N = vidreader.frames vidreader.skip_frames(num_prev_frames + num_blocks / 2) frame_idx = 0 numFrames = len(smoothMasks) while (frame_idx < numFrames): print 'Writing video ... {0}%\r'.format((frame_idx * 100 / N)), frame = vidreader.read_next() zero_frame = np.zeros(frame.shape, dtype=np.uint8) zero_frame[:, :, 2] = vaMasks[frame_idx] * 255 out_frame1 = cv2.addWeighted(frame, 0.6, zero_frame, 0.4, 0) out_frame2 = frame * smoothMasks[frame_idx][:, :, None] name = "test_results/smoothening/{0}_smooth.png".format( frame_idx + num_prev_frames + num_blocks / 2) cv2.imwrite(name, out_frame2) vidwriter.write(np.uint8(np.hstack((out_frame1, out_frame2)))) frame_idx += 1 vidwriter.close() time_taken = time.time() - start print "Writing video .... [DONE] in ", time_taken, " seconds"
def createVideo(datapath,group,outfileName,shape,duration=120,framerate=20,vidLen=32): vidOutFileName = outfileName + 'test.avi' labelOutFileName = outfileName + 'test.txt' values = []; create_folder_structure_if_not_exists(vidOutFileName); with open(datapath+os.sep+group+".txt",'r') as fp: for line in fp: values.extend([line.split()]); numClass = len(values); numExamples = (duration*framerate)/(vidLen); randomNumbers = np.random.random_integers(0,numClass-1,numExamples); fileWriter = open(labelOutFileName,'w'); vidWriter = VideoWriter(vidOutFileName,shape[0],shape[1]); vidWriter.build(); for idx,random_idx in enumerate(randomNumbers): print 'Creating UCF 50 video ... {0}%\r'.format((idx*100/numExamples)), classDetails = values[random_idx]; classPath = datapath + os.sep + classDetails[0] + os.sep classExamples = [os.path.join(classPath, _file) for _file in os.listdir(classPath) if os.path.isfile(os.path.join(classPath, _file))]; chosenExample = classExamples[np.random.randint(len(classExamples))]; #print chosenExample vidreader = VideoReader(chosenExample,None); num_frames = vidreader.frames; cnt,frames = vidreader.read(np.random.randint(num_frames-vidLen),vidLen); fileWriter.writelines("%d\n" % int(item) for item in [classDetails[2]]*cnt) for frame in frames: vidWriter.write(frame); vidWriter.close(); fileWriter.close();
def write_video(write_path,vidreader,smoothMasks,window_centers,window_sizes,num_blocks, num_prev_frames,rsz_shape=[80,60]): create_folder_structure_if_not_exists(write_path); shape = [vidreader.width, vidreader.height]; vidwriter = VideoWriter(write_path,vidreader.width,vidreader.height); vidwriter.build(); vidreader.__reset__(); skip_frames = num_prev_frames + num_blocks/2; vidreader.skip_frames(skip_frames); frame_idx = 0; numFrames= len(smoothMasks); while(frame_idx < numFrames): frame = vidreader.read_next(); if frame is None: break; frame = draw_rect(frame,window_centers[frame_idx],window_sizes,shape); name = "test_results/tracking/track{0}.png".format(frame_idx); cv2.imwrite(name,frame); vidwriter.write(np.uint8(frame)) frame_idx += 1; vidwriter.close();
def createVideo(datapath, group, outfileName, shape, duration=120, framerate=20, vidLen=32): vidOutFileName = outfileName + 'test.avi' labelOutFileName = outfileName + 'test.txt' values = [] create_folder_structure_if_not_exists(vidOutFileName) with open(datapath + os.sep + group + ".txt", 'r') as fp: for line in fp: values.extend([line.split()]) numClass = len(values) numExamples = (duration * framerate) / (vidLen) randomNumbers = np.random.random_integers(0, numClass - 1, numExamples) fileWriter = open(labelOutFileName, 'w') vidWriter = VideoWriter(vidOutFileName, shape[0], shape[1]) vidWriter.build() for idx, random_idx in enumerate(randomNumbers): print 'Creating UCF 50 video ... {0}%\r'.format( (idx * 100 / numExamples)), classDetails = values[random_idx] classPath = datapath + os.sep + classDetails[0] + os.sep classExamples = [ os.path.join(classPath, _file) for _file in os.listdir(classPath) if os.path.isfile(os.path.join(classPath, _file)) ] chosenExample = classExamples[np.random.randint(len(classExamples))] #print chosenExample vidreader = VideoReader(chosenExample, None) num_frames = vidreader.frames cnt, frames = vidreader.read(np.random.randint(num_frames - vidLen), vidLen) fileWriter.writelines("%d\n" % int(item) for item in [classDetails[2]] * cnt) for frame in frames: vidWriter.write(frame) vidWriter.close() fileWriter.close()
def write_video(vidreader,out_path,num_prev_frames,num_blocks,smoothMasks,vaMasks): create_folder_structure_if_not_exists(out_path); start = time.time(); vidwriter = VideoWriter(out_path,vidreader.width*2,vidreader.height) vidwriter.build(); vidreader.__reset__(); N = vidreader.frames; vidreader.skip_frames(num_prev_frames + num_blocks/2); frame_idx = 0 numFrames= len(smoothMasks); while(frame_idx < numFrames): print 'Writing video ... {0}%\r'.format((frame_idx*100/N)), frame = vidreader.read_next(); zero_frame = np.zeros(frame.shape,dtype=np.uint8); zero_frame[:,:,2] = vaMasks[frame_idx]*255 out_frame1 = cv2.addWeighted(frame,0.6,zero_frame,0.4,0); out_frame2 = frame * smoothMasks[frame_idx][:,:,None] name = "test_results/smoothening/{0}_smooth.png".format(frame_idx+num_prev_frames + num_blocks/2); cv2.imwrite(name,out_frame2) vidwriter.write(np.uint8(np.hstack((out_frame1,out_frame2)))) frame_idx += 1; vidwriter.close(); time_taken = time.time()-start; print "Writing video .... [DONE] in ",time_taken," seconds"
def perform_localization(vidreader,roi_mask,smoothner,fgMasks,bgMasks,gtMasks, num_blocks=10,skip_frames = 0,last_frame=1000): confusion = getNewConfusion(); start = time.time(); frameNewMasks = []; frame_idx = skip_frames + 2*num_blocks; N = min(vidreader.frames,last_frame); status = 'Localizing Video ' + vidreader.foldername +' ... {0}\r' out_dir=os.path.dirname(vidreader.foldername)+os.sep+'output'+os.sep create_folder_structure_if_not_exists(out_dir); while(frame_idx +num_blocks < N): print status.format((str(frame_idx*100/N)+'%')), (num_frames,frames) = vidreader.read(frame_idx-2*num_blocks,2*num_blocks); if num_frames > num_blocks: start_idx = num_blocks/2; end_idx = min(3*num_blocks/2,num_frames); s = frame_idx-2*num_blocks-skip_frames; e = s + num_frames; newMasks = smoothner.process(frames,fgMasks[s:e],bgMasks[s:e],range(start_idx,end_idx)); #newMasks = __morphologicalOps__(newMasks); groundTruthMasks = gtMasks[s+num_blocks/2:s+num_blocks/2+newMasks.__len__()]; _frames = frames[num_blocks/2:num_blocks/2+newMasks.__len__()]; tmp_idx= 0; for (gt,my) in zip(groundTruthMasks,newMasks): zero = np.zeros(gt.shape[:2],dtype=np.uint8) my_mask = np.uint8(np.dstack((zero,zero,my*255))) out = cv2.addWeighted(_frames[tmp_idx],0.6,my_mask,0.4,0); path = out_dir+os.sep+'sal_'+str(frame_idx-2*num_blocks-skip_frames+tmp_idx)+'.png' cv2.imwrite(path,out) gt_mask = np.uint8(np.dstack((zero,zero,gt*255))); out = cv2.addWeighted(_frames[tmp_idx],0.6,gt_mask,0.4,0); path = out_dir+os.sep+'gt_'+str(frame_idx-2*num_blocks-skip_frames+tmp_idx)+'.png' cv2.imwrite(path,out) frame_confusion=comparator(gt,my,roi_mask); updateConfusion(confusion,frame_confusion); tmp_idx += 1 frame_idx += num_blocks time_taken = time.time()-start; print status.format('[Done] in '),time_taken," seconds" return confusion;
def open_write_header(extract_path): create_folder_structure_if_not_exists(extract_path); _file = open(extract_path,'w'); return _file;
def open_write_header(extract_path): create_folder_structure_if_not_exists(extract_path) _file = open(extract_path, 'w') return _file