The End of the World

勉強したことのメモが中心。たまに日々の雑感。

tiff画像を扱うpythonモジュール"tifffile"の紹介

tifffile を使おう

あまり無い機会だとは思いますがディープラーニングの源泉画像としてtif形式のものを用いることがあります。 たとえば地理画像の解析をする場合、tiff形式で提供されていることも多く、また4バンド以上の画像を扱わなければいけない場合があります。

gdalというライブラリも多機能で結構便利なのですが使い勝手がやや悪いことがネックになっていました。 自分の環境でgdalのインストールに失敗したこともあって、代わりのライブラリを探していたということもあります。

そんな時に見つけたのがtifffileというそのままの名前のモジュールです。 試してみたところ使い勝手が非常に良かったため紹介させていただきます。

インストール

※anaconda環境の場合


conda install -c conda-forge tifffile

(参照)https://anaconda.org/conda-forge/tifffile

画像の読みこみ

imreadというメソッドを使います


>>> import tifffile
>>> image = tifffile.imread('image.tif')
>>> image.shape
(6000, 6000, 4)

書き方はちょっとopenCVっぽいですね。。。

画像の保存

imsaveというメソッドです


>>> import tifffile
>>> import numpy as np

>>> data = np.random.randint(0,256,(600,600,3))
>>> data = data.astype(np.uint8)
>>> tifffile.imsave('image.tif', data)

ノイズ画像が保存できました。

f:id:dl-kento:20171223140157j:plain



(参考)https://pypi.python.org/pypi/tifffile