Сжатие изображений реализовано с помощью квадродеревьев. Класс QuadTree в пакете tree является полностью самостоятельным и решает задачу построения квадродерева на плоскости и размещения в нём точек (описанную на Википедии и незначительно доработанную).
Консольная утилита представляет возможность сжать любое изображение, указать глубину сжатия (от 0 до 8, где 0 — наименьшая детализация), создать гиф-анимацию сжатия, отобразить на изображении границы конечных квадрантов. Также сжатие включает в себя разделение на потоки на этапе построения квадродерева.
Исходное изображение:
python main.py --image images/image.jpg --depth 3
python main.py --image images/image.jpg --depth 7
python main.py --image images/image.jpg --gif --lines