Аппроксимация изображения с использованием похожих непересекающихся кругов - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь найти алгоритм, который бы аппроксимировал изображение в оттенках серого, используя соответствующее количество математических фигур из заранее определенного набора форм, которые можно использовать (3 круга разного размера в моем случае).

I Я рассмотрел алгоритмы, основанные на диффузии ошибок, такие как алгоритм Флойда-Стейнберга, но я не вижу способа преобразовать диффузию ошибок на основе пикселей в математические фигуры.

Кто-нибудь получил какие-либо предложения?

Редактировать : Вот пример использования квадратов вместо кругов An example with squares instead of circles Другой пример использования кругов одинакового размера на сетке. Это было получено путем замены размытых квадратов кружками, но это дало плохие результаты из-за отклонения от первоначально аппроксимированного изображения. Круги здесь распределены в сетке, а это не то, что я ищу: enter image description here

1 Ответ

1 голос
/ 17 января 2020

Подсказка:

Принцип Флойда-Штейнберга заключается в оценке локальной ошибки между исходным изображением и двоичным. Поскольку каждый пиксель заменяется неправильным значением, ошибка запоминается и используется в качестве компенсации для оценки следующего пикселя.

Ваш случай более сложный из-за переменной высоты тона, требующей некоторой стратегии предотвращения столкновений. Обобщением диффузии ошибок будет заполнение изображения полурегулярным способом желаемыми формами и оценка усредненного эквивалента в градациях серого. Затем поместите фигуру в следующую пустую ячейку, когда расхождение станет достаточно большим.

Проще сказать, чем сделать.

...