我兩種方法來保存圖像數據,一個只是保存值在灰度和另一個產生熱圖的圖像在我的代碼:保存的相同數據生成不同的圖像 - 的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 /瓦里亞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