Замечание об отступлении: согласно официальному руководству Matplotlib использование модуля
blockquote>pylab
больше не рекомендуется. Пожалуйста, подумайте об использовании модуляmatplotlib.pyplot
вместо этого, как описано в , этот другой ответ .Кажется, что работает следующее:
from pylab import rcParams rcParams['figure.figsize'] = 5, 10
Это делает ширину фигуры 5 дюймов и ее высоту 10 дюймов .
Класс Figure затем использует это как значение по умолчанию для одного из своих аргументов.
Я бы начал экспериментировать с цветами вершин (иметь разные значения RGBA для каждой вершины), это немного увеличит сложность, но значительно увеличит способность быстро соответствовать целевому изображению (предполагая, что фотографические изображения, как правило, имеют естественные градиенты в их).
Ваш вопрос, кажется, предлагает отойти от генетического подхода (то есть попытаться найти хороший треугольник, который бы подходил, а не развивал его). Однако это можно интерпретировать в обоих направлениях, поэтому я отвечу на основе генетического подхода.
Чтобы сфокусировать ваши мутации, можно применить сетку к изображению, рассчитать, какой квадрат сетки является наименее наилучшим соответствием соответствующего квадрата сетки на целевом изображении, и определить, какие треугольники пересекаются с этим квадратом сетки, затем пометьте их для большей вероятности мутации.
Вы также можете (в то же время) улучшить мелкую детализацию, выполнив меньшую проверку на основе сетки на наилучшем соответствующем квадрате сетки.
Например, если вы используете сетку 8x8 над изображением:
Очень интересная проблема! Моим способом анализа такой проблемы было использование алгоритма оптимизации эволюционной стратегии . Это не быстро и подходит, если количество треугольников мало. Я не достиг хорошей аппроксимации исходного изображения - но это отчасти потому, что мое исходное изображение было слишком сложным - поэтому я не пробовал много перезапусков алгоритма, чтобы посмотреть, какие другие неоптимальные результаты может дать EVO ... В любом кейс - это неплохо, как метод генерации абстрактного искусства: -)