enimda

Entropy-based image border detection algorithm library


Keywords
image, border, whitespace, detection, algorithm, enimda, entropy
License
MIT
Install
pip install enimda==2.1.0

Documentation

ENIMDA

Entropy-based image border detection algorithm: finds out if your image has borders or whitespaces around and helps you to trim border providing whitespace offsets for every side of a picture, supports animated GIFs.

pypi version travis ci build status

Algorithm (simplified)

For each side of the image starting from top, rotating image counterclockwise to keep side of interest on top:

  • Get upper block 25% of image height
  • Get lower block with the same height as the upper one
  • Calculate entropy for both blocks and their difference
  • Make upper block 1px less
  • Repeat from p.2 until we hit image edge
  • Border is between blocks with entropy difference maximum

Sliding from center to edge - searching for maximum entropy difference

Requirements

Python 3.5+

Setup

python-3.6 -m venv .env
source .env/bin/activate
pip install enimda

Usage

Find if image has borders:

from enimda import ENIMDA


# Load target image
em = ENIMDA(fp='test.jpg')

# Scan for borders with high precision
borders = em.scan(fast=False)

# Print found image borders (tuple): top, right, bottom, left
print(borders)

Demo

For demo please refer to ENIMDA Demo

Also it lives at Picture Instruments as 'Remove borders' instrument

Tests

Run tests: py.test