Images made easy
Project description
# easyimages
[![Foo](https://img.shields.io/pypi/v/easyimages.svg)](https://pypi.python.org/pypi/easyimages)
[![Foo](https://img.shields.io/travis/i008/easyimages.svg)](https://travis-ci.org/i008/easyimages)
# Info
This small but handy package solves several issues i had while working with images and image datasets - especially in the context
of exploring datsets, inspecting and shareing the results.
Keep in mind that his package is not directly related to the training process and loading
image data, for that i found pytorch dataloading patterns to work very well.
# Installation
```bash
pip install easyimages
```
Features
--------
- Simple API
- Easy image exploration
- Inteligent behaviour based on execution context (terminal, jupyter etc)
- Lazy evaluation
- Loading images from many different sources (filesystem, pytorch, numpy, web-urls, etc)
- Storing annotations (tags, bounding boxes) allong the image in the same object
- Visualizing labels (drawing boxes and drawing the label onto the image)
- Visualizing images as Grids (ImagesLists)
- Visualizing huge amounts of images at once (by leveraging fast html rendering)
- Displaying images while working in jupyter notebook
- Displaying images inline in console mode (iterm)
Examples
--------
For detailed examples check the examples notebook
```python
from easyimages import EasyImage, EasyImageList, bbox
import torch
import torchvision
from torchvision import transforms
import PIL
```
# EasyImage
#### image from file
```python
# in this context lazy means the object will store the metadata only and will not open the file just yet
image1 = EasyImage.from_file('./tests/test_data/image_folder/img_00000002.jpg',label=['Person'], lazy=True)
image1.show()
```
EasyImageObject: img_00000002.jpg | labels: ['Person'] | downloaded: True | size: (205, 300) |
![png](example/output_2_1.png)
### image from file in CLI (iterm only) :
![png](example/easy_cli.png)
#### image from url
```python
image2 = EasyImage.from_url('https://imgur.com/KDBRjyv.png')
image2.show()
```
EasyImageObject: KDBRjyv.png | labels: [] | downloaded: True | size: (237, 212) |
![png](example/output_4_1.png)
#### image from torch-like
```python
MEAN = [0.485, 0.456, 0.406]
STD = [0.229, 0.224, 0.225]
Trans = torchvision.transforms.Compose([
transforms.ToTensor(),
transforms.Normalize(mean=MEAN, std=STD),
])
torch_image = Trans(PIL.Image.open('./tests/test_data/image_folder/img_00000003.jpg'))
image3 = EasyImage.from_torch(torch_image, mean=MEAN, std=STD)
image3.show()
```
EasyImageObject: ef807dcc.jpg | labels: [] | downloaded: True | size: (170, 250) |
![png](example/output_6_1.png)
#### Draw label on image
```python
image2.boxes = [bbox(10, 10, 50, 50, 1, 'class_1'),
bbox(50, 50, 100, 100, 1, 'class_2')]
image2.draw_boxes().show()
```
EasyImageObject: KDBRjyv.png | labels: [] | downloaded: True | size: (324, 291) |
![png](example/output_8_1.png)
# EasyImageList()
```python
easy_list = EasyImageList.from_multilevel_folder('./tests/test_data/hierarchy_images/')
<ImageList with 6 EasyImages>
```
```python
# sometimes its handy to have a numpy array like image
r = easy_list.visualize_grid_numpy(montage_shape=(3,2))
```
![png](example/output_12_0.png)
#### visualize a big dataset
![png](example/vis.png)
=======
History
=======
0.1.0 (2018-08-24)
------------------
* First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
easyimages-0.6.8.tar.gz
(173.5 kB
view details)
Built Distribution
File details
Details for the file easyimages-0.6.8.tar.gz
.
File metadata
- Download URL: easyimages-0.6.8.tar.gz
- Upload date:
- Size: 173.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.10.0 pkginfo/1.4.1 requests/2.11.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40f5c39d9359a0e9d31869a326b786d673af584e91f6daae0b850cdc2cf9586c |
|
MD5 | 1a636f3bd149004d44e22dd0c9a549c3 |
|
BLAKE2b-256 | 311a3a2a7bcf299c46254c97281309e107f8b9dd8ec5beb5d5cdb7ff4d3880c3 |
File details
Details for the file easyimages-0.6.8-py2.py3-none-any.whl
.
File metadata
- Download URL: easyimages-0.6.8-py2.py3-none-any.whl
- Upload date:
- Size: 87.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.10.0 pkginfo/1.4.1 requests/2.11.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdaae88e7483da98cd0463b6362e39d0ac605f730174e6a487a91776722a25c3 |
|
MD5 | c7b387be25a67e6781b2418642dd92d6 |
|
BLAKE2b-256 | 95980f1e38743d794ea6fb74e1a53b001bb46cf351af59e8b91685c14a513220 |