2
我有一個測量數據文本文件,看起來像這樣。座標值爲圖像
x y z
1 3 -2
2 1 -3
3 1 1
2 2 3
1 2 2
2 3 0
這將意味着在以下測量(上一個x,y網格)
-2 0
2 3
-3 1
我想創建從這些值的圖像,其中沒有測量將意味着該圖像是透明的。如果可能的話,我想將z值(從例如-9.4到+3.2)映射到一個顏色映射表,比如colormap.jet
我試圖用Python Image Library和putpixel來做這個,但是這很緩慢,我相信必須有更好的方式來做到這一點。
我當前的代碼: 基本路徑= os.path.dirname(os.path.realpath(文件))#定義了當前文件駐留 srcFiles = glob.glob( '* PTS。')的目錄
在srcFiles爲文件名:
data = pd.read_csv(os.path.join(basePath, fileName), names=['x', 'y', 'z'], delim_whitespace=True)
print fileName
maxX = data.x.max()
minX = data.x.min()
maxY = data.y.max()
minY = data.y.min()
minZ = data.z.min()
maxZ = data.z.max()
width = maxX-minX
height = maxY-minY
img = Image.new('L', (int(width), int(height)))
for x in range(int(width)):
for y in range(int(height)):
value = data[(data['x'] == (minX+x)) & (data['y'] == (minY+y))]['z']
if len(value) == 0:
value = 99.;
img.putpixel((x,y),int(value))
img.save('test.png')