Алгоритм для сокращения изображения до прямоугольников?

Также ищите ptkdb на CPAN: http://search.cpan.org/search?query=ptkdb&mode=all

7
задан 3 December 2009 в 15:50
поделиться

2 ответа

Похоже, вам понадобится классическая структура QuadTree . См. Эту ссылку, чтобы получить хорошее объяснение того, как использовать дерево квадрантов для квантования изображения в прямоугольники.

Вот хорошая ссылка на CodeProject , которая предоставляет образец простой реализации, которую вы можете изменить в соответствии с вашими потребностями .

3
ответ дан 7 December 2019 в 16:43
поделиться

Простым для реализации алгоритмом было бы рисование прямоугольников 1xN.

Начните с строки 0 и найдите первый непустой пиксель. Продолжайте перебирать пиксели, пока цвет пикселей, на которые вы смотрите, не изменится. Теперь нарисуйте эту серию пикселей того же цвета, как прямоугольник 1xN.

Если на ваших реальных снимках есть большие однородные области, это может быть «достаточно хорошо». В зависимости от того, как выглядят изображения, рисование вертикальных линий может быть лучше.

Если я правильно подсчитываю, используя этот метод, круг радиусом 100 пикселей будет использовать 200 «линий» для рисования, а не 30 000 пикселей. если делать по одному пикселю за раз. Мне кажется, что при разложении четырехугольного дерева для такого круга использовалось бы как минимум 1000 прямоугольников или больше, если вам повезло с тем, где упали квадранты.

0
ответ дан 7 December 2019 в 16:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: