Разделение изображения на цветные прямоугольные области - PullRequest
0 голосов
/ 19 октября 2018

Для изображения с фиксированной палитрой (например, 256 цветов)

Создайте алгоритм для разделения этого изображения на прямоугольные области, каждая из которых состоит из пикселей одного цвета.Регионы могут перекрываться, порядок их также имеет значение (последний регион будет отображаться поверх других).Количество регионов должно быть как можно меньше.

Альтернативная формулировка проблемы: нарисуйте изображение, используя наименьшее количество fill инструкций.

Я уверен, что эта проблемаявляется NP-полным, поэтому более быстрое решение будет лучше, чем точное, требующее вечной работы.

Самый простой подход - сканировать изображение построчно и получать прямоугольники с высотой 1. Но этоне очень эффективен.

Я также думал о создании дерева квадрантов, а затем о слиянии смежных областей (объединение потребовало бы некоторой эвристики для выбора лучшей пары для объединения).

Два вышеалгоритмы не учитывают, что регионы могут перекрываться.Мы можем нарисовать огромный регион, а затем нарисовать детали над ним.

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...