Я написал в Python одну вещь, которая принимает изображение в качестве входных данных и записывает выходные данные в виде тесселированной версии треугольника входного изображения. Например это изображение котенка:
превращается в это:
Но когда я пытаюсь сохранить изображение, я каким-то образом получаю белую рамку вокруг него, от которой, похоже, не могу избавиться.
Код, который заботится о сохранении изображения, выглядит следующим образом:
my_dpi=100
figSize = imageWidth / float(my_dpi), imageHeight / float(my_dpi)
fig = plt.figure(figsize=figSize)
ax = fig.add_axes([0, 0, 1, 1])
ax.invert_yaxis()
for triangle, eColor, fColor in zip(tris.simplices, triColors, triColors):
p = Polygon([tris.points[i] for i in triangle], closed=True, facecolor=fColor, edgecolor=eColor)
ax.add_patch(p)
ax.axis('tight')
ax.set_axis_off()
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
outfile_name = "%s-%s-%s.png" % (sys.argv[1].split('.')[0], str(tris.simplices.shape[0]), str(i))
fig.savefig(outfile_name, bbox_inches='tight', pad_inches=0, dpi=my_dpi)
tris
- это всего лишь триангуляционный объект, полученный из модуля триангуляции Делоне Сципи. Я использую это, чтобы вычислить цвет каждого треугольника и добавить патч полигона для каждого треугольника в цикле for. Окончательный набор патчей записывается в изображение, когда рисунок сохраняется в файле. Из-за белого фона этого сайта вы, возможно, не сможете увидеть белую рамку, но если вы откроете ссылку на выходное изображение, белая граница там будет четко видна. Я перепробовал все, что мог придумать, но никак не мог избавиться от этой белой границы. Есть ли особый способ избавиться от него, если я сохраняю фигуру с помощью многоугольных патчей?