Professional Documents
Culture Documents
【Python】画像の類似度の計算(Dice係数) - 【初心者向け】基礎&実践プログラミング
【Python】画像の類似度の計算(Dice係数) - 【初心者向け】基礎&実践プログラミング
【初⼼者向け】基礎&実践プログラ
2020-06-10
ング
【Python】画像の類似度の計算(Dice AIProgrammer
脳画像解析・⼈⼯知能(AI)を使って
係数) 事をしています。
プログラミングをするうえで、初⼼者がつまづき
すいところ、最短で実⼒が⾝につく⽅法
Python をお伝えします。
読者になる 635
注⽬記事
2020-12-19
【画像認識】Pythonを
った物体抽出・切り取
2020-05-04
Pythonを使った株価の
動収集
2020-04-29
【Python】MAEとRM
の計算⽅法
動かしながら学ぶ PyTorchプログラミング⼊⾨
2020-05-07
作者:斎藤勇哉 【Python】相関⾏列
発売⽇: 2020/11/30
(Correlation Matrix)と
メディア: Kindle版
ートマップ (Heat Map
作り⽅
2020-04-18
【Excel】⽂字列の⾜し
(結合)
⽬次 2021-03-18
【脳MRI画像解析】ComBatをもちいた
ータの調和(Harmonization)
⽬次
⽬次
⽬的
2020-06-10
準備 【Python】画像の類似
フォルダ構造 の計算(Dice係数)
画像類似度の計算(Dice係数)
calc_dice.py 2020-07-16
【Python】バイオリン
result_diceindex.csv
ロット(Violin Plot)
FSLでやりたい場合
fsl_dicecalc.sh
2020-05-06
【Python】縦断データ
可視化(プロット・箱ひ
図・バイオリン図・信頼
⽬的 間・ヒストグラム)
2020-06-22
NIFTI形式の画像からPythonを使ってDice係数を計算する。 【Python】カッパ(k)
数の計算
準備
必要となるパッケージは以下の通りです。必要に応じてインストールしてください。
カテゴリー
フォルダ構造
最新記事
フォルダ構造は以下の通りです。image1とimage2に⽐較したい画像をいれてください。⽐較 【脳MRI画像解析】ComBatをもちいた
したい画像同⼠が⽐較できるようにimage1とimage2の並び順は対応させておいてください。 ータの調和(Harmonization)
calc_dice.pyはDice係数を計算するためのPythonスクリプトです。 【Python】ROC曲線の作成・AUC算出
最適なカットオフ値の決定・分類正確度
感度 / 特異度の算出まで
.
├── calc_dice.py 【脳MRI画像解析ケーススタディ】施設
├── image1 差の評価 〜拡散定量値の観点から〜
│ ├── sub001.nii.gz
【Python】DICOMのソート処理
│ ├── sub002.nii.gz
│ └── sub003.nii.gz 【Slack API】⾃動いいね・ダイレクト
└── image2 ッセージ・投稿収集
├── sub001.nii.gz
├── sub002.nii.gz
└── sub003.nii.gz
⽉別アーカイブ
▶ 2021 (9)
画像類似度の計算(Dice係数)
▼ 2020 (86)
2020 / 12 (10)
2020 / 11 (10)
2020 / 10 (2)
以下のコードをimage1フォルダとimage2フォルダと同じ階層に calc_dice.py として保存し
2020 / 8 (2)
ます。 2020 / 7 (2)
2020 / 6 (7)
2020 / 5 (12)
calc_dice.py 2020 / 4 (35)
2020 / 3 (6)
def load(file):
img = nib.load(file)
data = img.get_fdata().astype("float16") 免責事項
data_reshape = data.reshape(-1)
return data_reshape プライバシーポリシー
filelist1 = sorted(glob.glob("image1/*.nii.gz"))
filelist2 = sorted(glob.glob("image2/*.nii.gz"))
for i in range(len(filelist1)):
img1 = load(filelist1[i])
img2 = load(filelist2[i])
# img1[img1>0]=1
# img1[img1<0]=0
# img2[img2>0]=1
# img2[img2<0]=0
di = dice(img1,img2)
filename1.append(filelist1[i])
filename2.append(filelist2[i])
dice_index.append(di)
print("{} vs {}, DI:{:.3f}".format(filelist1[i],filelist2[i],di))
Dice計算を実⾏するには、以下のコマンドを実⾏します。
$ python3 calc_dice.py
image1/sub001.nii.gz vs image2/sub001.nii.gz, DI:0.765
image1/sub002.nii.gz vs image2/sub002.nii.gz, DI:0.956
image1/sub003.nii.gz vs image2/sub003.nii.gz, DI:0.465
calc_dice.py を実⾏すると結果を「result_diceindex.csv」にまとめてくれます。
result_diceindex.csv
FSLでやりたい場合
脳画像解析をしている⼈ならFSLで完結したい⼈もいると思います。
その場合は、以下のソースコードを保存して、実⾏する際に対象の2つの画像を引数として渡す
ことでDice係数を計算することができます。
私の戦友からに教えてもらいました!
fsl_dicecalc.sh
image1=$1
image2=$2
fslmaths ${image1} -mul ${image2} -bin image_and
vox_and=($(fslstats image_and -V))
vox_image1=($(fslstats ${image1} -V))
vox_image2=($(fslstats ${image2} -V))
printf '%.3f\n' "$(echo "scale=4; 2 * ${vox_and[0]} / (${vox_image1[0]} + ${
\rm -f image_and.nii*
上記のコードを「fsl_dicecalc.sh」として保存し、以下のコマンドを実⾏。
頑張れ!、喝!!の代わりにB!ブックマークを押していただけるとただただうれしいです(^^)! ↓
動かしながら学ぶ PyTorchプログラミング⼊⾨
作者:斎藤勇哉
発売⽇: 2020/11/30
メディア: Kindle版
AIProgrammer 282⽇前
105
5 21 ツイート
2
シェア
送る
関連記事
2020-11-23
【FSL】FDT pipelineを⽤いた標準空間(MNI空間)への位置合わ
せ
動かしながら学ぶ PyTorchプログラミング⼊⾨作者:斎藤勇哉発売…
2020-11-04
【MRI画像解析】ラット・マウスデータに対する前処理から定量値
計算まで
動かしながら学ぶ PyTorchプログラミング⼊⾨作者:斎藤勇哉発売…
2020-06-17
【FSL】ROI(VOI)を⽤いた画像計測
動かしながら学ぶ PyTorchプログラミング⼊⾨作者:斎藤勇哉発売…
2020-06-17
【FSL】Affine変換(平⾏移動+線形変換)
動かしながら学ぶ PyTorchプログラミング⼊⾨作者:斎藤勇哉発売…
2020-06-11
【FSL】⼤脳基底核(Basal Ganglia)のセグメントと体積(Volume)
計測
動かしながら学ぶ PyTorchプログラミング⼊⾨作者:斎藤勇哉発売…
コメントを書く