自分のための備忘録的なブログです。

Ubuntu14.04LTS を使って、ディープラーニングの勉強をしています。
記載されているコードは、他の OS には互換性がない可能性があります。


DNN:
マシン性能別 学習速度の比較, TFチュートリアルをmodifyする
python3:
オブジェクト指向プログラミングとは, システムコマンド(os), ファイル・フォルダ名取得, 画像の前処理,
R lang:
R基本コマンド, Rデータ形式, RStudio文字化け(os), RStudio背景黒,
Ubuntu14 の初期設定:
Ubuntu14初期設定, 初期設定-2, cudaなども, 初期設定-3

nifti ファイルを python で。

nifti ファイルを取り扱った経験が少なく、誤りに気づかれた場合、お教えください。

どうぞよろしくお願いいたします。

 

 

NifTi

概要

NifTi は神経画像解析に係るフォーマット。

Neuroimaging Informatics Technology Initiative の abbreviation

NIFTI - What does NIFTI stand for? The Free Dictionary

NifTi-1  NifTi-2 の 2種類の形式がある。

4次元の情報を入力可能: xyzt

 空間の 3次元(xyz, 基本は mm)

 時間軸方向の 1次元(t, 基本は msec)

 

拡張子

拡張子は .nii

.gz 形式で圧縮され、 .nii.gz という拡張子のことも。

 

NifTi-1, -2 の違い

参考:The NIFTI-2 file format | Brainder.

要点

NifTi-2 は NifTi-1 を拡張したもの。医療用画像データの肥大化に対応したらしい。

 

ポイントは

収納できるデータ量の増加

NifTi-1 ではひとつの次元に 2バイトしか情報を入れられず、2 ** 15 - 1 = 約 33万ボクセルしか扱えなかったとのこと。NifTi-2 では 8 byte の情報を扱えるようになり、2 ** 63 -。1 = 約 9 x 10の 18乗 のボクセルを扱える。

現在は 256 ** 3 くらいの画像を使うことある。これは 約 1700 万ボクセル。確かに NifTi-1 フォーマットでは扱えない。一方で、NifTi-2 フォーマットにはずいぶんと余裕があることもわかる。

 

ところで NifTi-1 ではどの程度の解像度で画像を扱えるのか? 256 x 192 x 20 (2D撮影で、解像度低めの撮影条件)でも 100万ボクセル近く、NifTi-1 フォーマットの上限を超えてしまう。NifTi-1 フォーマットでは画像は圧縮して扱うのが基本なのかもしれない。

 

区別

NifTi-1 形式のヘッダー情報は 348 (bit?)、NifTi-2 形式のヘッダー情報は 540 (bit?)とのこと。ヘッダーの大きさで区別することができる。

 

 

 

NiBabel

概要

神経画像を Python で扱うためのライブラリ。

ホーム

Neuroimaging in Python — NiBabel 2.2.1 documentation

コードは GitHub にて公開されている。

GitHub - nipy/nibabel: Python package to access a cacophony of neuro-imaging file formats

ライセンス

基本的には MIT ライセンス。一部 BSD ライセンス。

Neuroimaging in Python — NiBabel 2.2.1 documentation

 

PyNifti という過去のプロジェクトを引き継いだもの。 

PyPI で管理されており、pip で簡単インストール可能。

 

インストール

$ pip install nibabal

 

2017年末時点で、一部コードは Python 3.6 対応していないようです。Python あるあるですが、pyenv, conda などでの管理がベター。

 

使い方

別ページ参照 

Python + NiBabel で nii ファイルを扱う - 医用画像で Deep Learning

 

サポート

メーリングリストにて質問する形。

メールアドレスは

Neuroimaging in Python — NiBabel 2.2.1 documentation

参照。