Skip to main content

Observe dataset of images and targets in few shots

Project description

# ImageDatasetViz
[![Build Status](](
[![Coverage Status](](

Observe dataset of images and targets in few shots

![VEDAI example](examples/vedai_example.png)

## Descriptions

Idea is to create tools to store images, targets from a dataset as a few large images to observe the dataset
in few shots.

## Installation

#### with pip

pip install image-dataset-viz

#### from sources
python install
pip install git+

## Usage

### Render a single datapoint

First, we can just take a look on a single data point rendering. Let's assume that we
have `img` as, for example, `PIL.Image` and `target` as acceptable target type (`str` or list of points or
`PIL.Image` mask, etc), thus we can generate a single image with target.

from image_dataset_viz import render_datapoint

# if target is a simple label
res = render_datapoint(img, "test label", text_color=(0, 255, 0), text_size=10)

# if target is a mask image (PIL.Image)
res = render_datapoint(img, target, blend_alpha=0.5)

# if target is a bounding box, e.g. np.array([[10, 10], [55, 10], [55, 77], [10, 77]])
res = render_datapoint(img, target, geom_color=(255, 0, 0))

#### Example output on Leaf Segmentation dataset from CVPPP2017

![image with mask](examples/image_mask.png) ![image with label](examples/image_label.png) ![image with bbox label](examples/image_bbox_label.png)

### Export complete dataset
For example, we have a dataset of image files and annotations files (polygons with labels):
img_files = [
target_files = [
We can produce a single image composed of 20x50 small samples with targets to better visualize the whole dataset.
Let's assume that we do need a particular processing to open the images in RGB 8bits format:
from PIL import Image

def read_img_fn(img_filepath):
and let's say the annotations are just lines with points and a label, e.g. `12 23 34 45 56 67 car`
from pathlib import Path
import numpy as np

def read_target_fn(target_filepath):
with Path(target_filepath).open('r') as handle:
points_labels = []
while True:
line = handle.readline()
if len(line) == 0:
splt = line[:-1].split(' ') # Split into points and labels
label = splt[-1]
points = np.array(splt[:-1]).reshape(-1, 2)
points_labels.append((points, label))
return points_labels
Now we can export the dataset
de = DatasetExporter(read_img_fn=read_img_fn, read_target_fn=read_target_fn,
img_id_fn=lambda fp: Path(fp).stem, n_cols=20)
de.export(img_files, target_files, output_folder="dataset_viz")
and thus we should obtain a single png image with composed of 20x50 small samples.

## Examples

- [CIFAR10](examples/example_CIFAR10.ipynb)
- [VEDAI](examples/example_VEDAI.ipynb)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for image-dataset-viz, version 0.2.2
Filename, size File type Python version Upload date Hashes
Filename, size image_dataset_viz-0.2.2-py2.py3-none-any.whl (388.0 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size image_dataset_viz-0.2.2-py3.5.egg (396.9 kB) File type Egg Python version 3.5 Upload date Hashes View
Filename, size image_dataset_viz-0.2.2.tar.gz (388.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page