ImageHive
ImageHive is a tool that can transform a large collection of input images into a smaller summary collage.
It works by reading and analyzing all the images first. Images are then clustered according to their color histogram.
The available image space is divided equally among the clusters. Images are then analyzed and salient regions are determined.
This metric is used in the next step to arrange the images uniformally according to the size of their respective salient region.
Due to the algorithmic complexity of such an optimization (we are using python, after all) we decided to employ a heuristic approach.
Here we interpret each individual salient region as a "bubble".
We then simulate brownian dynamics for a given period. The resulting arrangement is in most cases well distributet and can be used to fill in the images.
Usage
Our version of ImageHive can be run directly from source since it is a python project.
There is also a binary version compiled for win64.
ImageHive is best run via a terminal or command line.
If called without arguments, it will run with default settings and look for input images in './images' of the same directory.
You can also use all of the following arguments in exactly that order:
- IMAGE_FOLDER = Path to the folder containing input images
- IMAGE_FILE_TYPE = Image file extension
- IMAGE_WIDTH = Width to resize images to
- CLUSTERS = Number of clusters to create
- SAMPLES_PER_CLUSTER = Number of images in each cluster
- LAYOUT_DELTA = Delta spacing to increase salient radii for layout (leave 0 if unsure)
- COMPOSITION_DELTA = Delta spacing to increase salient radii for composition (leave 0 if unsure)
- COMPOSITION_SIZE = Final output size in pixels (image will be quadratic)
Example:
python main.py
Example (with parameters):
python main.py images3 jpeg 127 6 6 0.02 0.01 700
Sourcecode/Binary
The source code and binary is available on Github at:
ImageHive on Github
Documentation
The documentation is available on GitHub and locally.