生物系研究者のpythonとか画像解析とか論文とか

主に生物系研究で使えるpythonとか画像解析とか論文の話とかをザックリ書きます

スポンサードリンク

pythonで MIP (Maximum Intensity Projection) 画像を作る

pythonでstack画像からMIP画像を作った時のメモ

前提

ディレクトリ (data_dir) 内に次のような画像ファイルがある xxx_z000.tif xxx_z001.tif xxx_z002.tif ..... また画像は全てgray scaleである

コード

import cv2
import numpy as np
from pathlib import Path

data_dir = Path('data_dir')
images = sorted(list(data_dir.glob('./*.tif')))

for i in images:
    im = cv2.imread(str(i),0)
    try:
        stack = np.concatenate([stack, im[:,:, np.newaxis]],axis=2)
    except:
        stack = im[:,:, np.newaxis]
mip = np.amax(stack, axis=2)

解説

dataのディレクトリ指定及び画像パスの取得

data_dir = Path('data_dir')
images = sorted(list(data_dir.glob('./*.tif')))

画像を順番に読み込み、結合する この時最初の画像だけ操作が変わるのでtry~exceptで処理する

for i in images:
    im = cv2.imread(str(i),0)
    try:
        stack = np.concatenate([stack, im[:,:, np.newaxis]],axis=2)
    except:
        stack = im[:,:, np.newaxis]

次元を指定して最大値を抜き出す

mip = np.amax(stack, axis=2)
スポンサードリンク