cvbase
cvbase copied to clipboard
Utils for computer vision research.
Deprecated! Please use mmcv instead.
Introduction
cvbase
is a miscellaneous set of tools which maybe helpful for computer vision research.
It comprises the following parts.
- IO helpers
- Image/Video operations
- OpenCV wrappers for python2/3 and opencv 2/3
- Timer
- Progress visualization
- Plotting tools
- Object detection utils
Try and start with
pip install cvbase
See documentation for more features and usage.
Some popular features
There are some popular features such as progress visualization, timer, video to frames/frames to videos.
-
Progress visualization
If you want to apply a method to a list of items and track the progress,
track_progress
is a good choice. It will display a progress bar to tell the progress and ETA.import cvbase as cvb def func(item): # do something pass tasks = [item_1, item_2, ..., item_n] cvb.track_progress(func, tasks)
The output is like the following.
There is another method
track_parallel_progress
, which wraps multiprocessing and progress visualization.import cvbase as cvb def func(item): # do something pass tasks = [item_1, item_2, ..., item_n] cvb.track_parallel_progress(func, tasks, 8) # 8 workers
-
Timer
It is convinient to computer the runtime of a code block with
Timer
.import time with cvb.Timer(): # simulate some code block time.sleep(1)
Or try a more flexible way.
timer = cvb.Timer() # code block 1 here print(timer.since_start()) # code block 2 here print(timer.since_last_check()) print(timer.since_start())
-
Video/Frames conversion
To split a video into frames.
video = cvb.VideoReader('video_file.mp4') video.cvt2frames('frame_dir')
Besides
cvt2frames
,VideoReader
wraps many other useful methods to operate a video like a list object, likevideo = cvb.VideoReader('video_file.mp4') len(video) # get total frame number video[5] # get the 6th frame for img in video: # iterate over all frames print(img.shape)
To generate a video from frames, use the
frames2video
method.video = cvb.frames2video('frame_dir', 'out_video_file.avi', fps=30)
-
Video editing (needs ffmpeg)
To cut a video.
cvb.cut_video('input.mp4', 'output.mp4', start=3, end=10)
To join two video clips.
cvb.concat_video(['clip1.mp4', 'clip2.mp4'], 'output.mp4')
To resize a video.
cvb.resize_video('input.mp4', 'resized.mp4', (360, 240)) # or cvb.resize_video('input.mp4', 'resized.mp4', ratio=2)
To convert the format of a video.
cvb.convert_video('input.avi', 'output.mp4', vcodec='h264')