# Introduction
[](https://pypi.python.org/pypi/cvbase)
[]()
[](https://travis-ci.org/hellock/cvbase)
[](https://codecov.io/gh/hellock/cvbase)
`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
```shell
pip install cvbase
```
See [documentation](http://cvbase.readthedocs.io/en/latest) 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.
```python
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.
```python
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`.
```python
import time
with cvb.Timer():
# simulate some code block
time.sleep(1)
```
Or try a more flexible way.
```python
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.
```python
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, like
```
video = 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.
```python
video = cvb.frames2video('frame_dir', 'out_video_file.avi', fps=30)
```
- Video editing (needs ffmpeg)
To cut a video.
```python
cvb.cut_video('input.mp4', 'output.mp4', start=3, end=10)
```
To join two video clips.
```python
cvb.concat_video(['clip1.mp4', 'clip2.mp4'], 'output.mp4')
```
To resize a video.
```python
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.
```python
cvb.convert_video('input.avi', 'output.mp4', vcodec='h264')
```
[](https://pypi.python.org/pypi/cvbase)
[]()
[](https://travis-ci.org/hellock/cvbase)
[](https://codecov.io/gh/hellock/cvbase)
`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
```shell
pip install cvbase
```
See [documentation](http://cvbase.readthedocs.io/en/latest) 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.
```python
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.
```python
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`.
```python
import time
with cvb.Timer():
# simulate some code block
time.sleep(1)
```
Or try a more flexible way.
```python
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.
```python
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, like
```
video = 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.
```python
video = cvb.frames2video('frame_dir', 'out_video_file.avi', fps=30)
```
- Video editing (needs ffmpeg)
To cut a video.
```python
cvb.cut_video('input.mp4', 'output.mp4', start=3, end=10)
```
To join two video clips.
```python
cvb.concat_video(['clip1.mp4', 'clip2.mp4'], 'output.mp4')
```
To resize a video.
```python
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.
```python
cvb.convert_video('input.avi', 'output.mp4', vcodec='h264')
```
Release files for cvbase 0.5.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cvbase-0.5.5.tar.gz | 39.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cvbase-0.5.5-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 85.3 kB
Release files / cvbase-0.5.5.tar.gz
| Download URL | cvbase-0.5.5.tar.gz |
|---|---|
| Size | 39.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
512fc242b4abd0d9d2a81b087b0793b21f4833982c37941f843d18af54c5ac36
|
|
BLAKE2b-256 checksum How to use checksums |
828bfb6289cfa92853d67318f5019fb31f07bf9af3649fd2e3f9a43a530c69a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / cvbase-0.5.5-py2.py3-none-any.whl
| Download URL | cvbase-0.5.5-py2.py3-none-any.whl |
|---|---|
| Size | 45.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
536bda2ae6d3aaec092f2e9045017d24d54513e7572341179bbe03c2d282e665
|
|
BLAKE2b-256 checksum How to use checksums |
7408551f262dd4535424b19723f686b84ac30b436d996191f90de42d739db64c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |