goo blog サービス終了のお知らせ 

五つ指ジョギング日記

裸足ランニングを中心に

pythonでtiffファイル

2019-07-27 19:28:00 | そのほか
備忘メモ。

私はtifファイルを扱うのにカラー画像じゃなくグレースケールを扱うことが多い。
で、後でimageJというフリーソフトで画像を確認。

skimageというのを使うとpythonで楽に扱えることを知った。
私はちょくちょくmultipage tiffも扱うけど、
skimageのimreadやimsaveだとmultipageでもそうでなくても同じように扱える。

下のような感じでnumpyの配列を使う。
以下ソース。

import numpy as np
from skimage.external import tifffile as tff

def main():
# 画像の準備 sizex,sizey = 256,256 size = sizey,sizex x1 = np.linspace(-sizex/2,sizex/2-1,sizex) y1 = np.linspace(-sizey/2,sizey/2-1,sizey) xx,yy = np.meshgrid(x1,y1) image1 = np.zeros(size) image2 = np.zeros(size) image1 = np.sin(np.pi*2*xx/10) image2 = np.sin(np.pi*2*(xx-3)/10) # image1と image2を束ねてslicesというのにまとめる slices = np.zeros((2,sizey,sizex),dtype=np.float32) slices[0,:] = image1 slices[1,:] = image2 # 256x256のfloat画像 image1という画像とslicesというmultipage tiff画像を保存 tff.imsave('single.tif',np.float32(image1)) tff.imsave('multi.tif', np.float32(slices)) # 直前で保存した2つのtifファイルを読み込む i1 = tff.imread('single.tif') i2 = tff.imread('multi.tif') print('single.tifのshapeは{} multi.tifのshapeは{}'.format(i1.shape,i2.shape))
if __name__=='__main__':
main()