【Python】PILでfloat型の画素を持つTIFFを入出力する
2023-5-25 | Python
PythonでPILを使ってfloat
型の画素を持つTIFFを入出力したい!
概要
今回の記事では、PythonでPILを使ってfloat
型の画素を持つTIFFを入出力するサンプルを掲載する。
float
型の二次元データを楽して入出力する方法を探してて、PIL&TIFFだとめちゃ簡単に出来た!
仕様書
環境
- Python 3.10.6
手順書
float
型の画素を持つTIFFを入出力するサンプル。
256x256のfloat
型で0~255のランダムなデータを生成してtifファイルで保存する。
保存したtifファイルを読み込んで元データとファイルから読み込んだデータが同一であるか確認する。
import numpy as np
from PIL import Image
width, height = 256, 256
# float型で0~255のランダムなデータを生成する
data = np.random.rand(height, width) * 255
data = data.astype(np.float64)
image = Image.fromarray(data)
# 座標(16, 16)のピクセルを取得して型の名前と値を表示する
p = image.getpixel((16,16))
print(type(p))
print(p)
# tifファイルでデータを保存する
image.save("test.tif")
# 先程保存したtifファイルを読み込む
tiff = Image.open("test.tif")
# 読み込んだデータの座標(16, 16)のピクセルを取得して型の名前と値を表示する
# 保存前のデータと同じ内容であることを確認する
p = tiff.getpixel((16,16))
print(type(p))
print(p)
このサンプルを実行するとtest.tif
が出力される。Windowsのフォトで一応画像として表示できる。
まとめ(感想文)
Pythonでfloat
型の二次元データを入出力するのに使えるかもね!
波形のスペクトログラムを保存するのに良いかも?!