У меня есть в моем коде два способа сохранить данные изображения, один только сохранить его значения в оттенках серого, а другой для генерации тепла изображения карты:Те же данные, сохраненные создавать различные образы - Python
def save_image(self, name):
"""
Save an image data in PNG format
:param name: the name of the file
"""
graphic = Image.new("RGB", (self.width, self.height))
putpixel = graphic.putpixel
for x in range(self.width):
for y in range(self.height):
color = self.data[x][y]
color = int(Utils.translate_range(color, self.range_min, self.range_max, 0, 255))
putpixel((x, y), (color, color, color))
graphic.save(name + ".png", "PNG")
def generate_heat_map_image(self, name):
"""
Generate a heat map of the image
:param name: the name of the file
"""
#self.normalize_image_data()
plt.figure()
fig = plt.imshow(self.data, extent=[-1, 1, -1, 1])
plt.colorbar(fig)
plt.savefig(name+".png")
plt.close()
Класс что представляет мои данные это:
class ImageData:
def __init__(self, width, height):
self.width = width
self.height = height
self.data = []
for i in range(width):
self.data.append([0] * height)
Проходя те же данные для обоих методов
ContourMap.save_image ("ImagesOutput/Varia bilityOfGradients/ContourMap ") ContourMap.generate_heat_map_image (" ImagesOutput/VariabilityOfGradients/ContourMapHeatMap ")
Я получаю одно изображение повернуты по отношению к другому.
Метод 1:
Метод 2:
Я не понимаю, почему, но я должен это исправить.
Любая помощь будет оценена по достоинству. Спасибо заранее.
В качестве побочного примечания, почему вы используете ['putpixel'] (http://pillow.readthedocs.org/en/latest/reference/Image.html#PIL.Image.Image.putpixel) в первую очередь ? Это самый медленный способ создания изображения, особенно в старых версиях PIL/Pillow. Почему бы просто не перевести массив с помощью одной векторной операции, а затем просто скопировать все сразу? Или использовать 'ImageDraw'? Или что-нибудь еще? – abarnert
Я просто дал вам два разных совета, а также ссылку на документы, которые имеют более обширные советы. – abarnert