logo

ジュリア、MATLAB、PythonでShepp-Loganファントムを使う方法 📂トモグラフィ

ジュリア、MATLAB、PythonでShepp-Loganファントムを使う方法

ジュリア 1

トモグラフィーパッケージ Tomography.jlで、phantom()関数を使えばいい。

  • phantom(m,n=1): $m\times m$サイズのShepp-Logan ファントムを生成する。n=1の時はShepp-Loganファントム、n=2の時はModified Shepp-Loganファントムを生成する。
using Tomography
using Plots

# 팬텀 생성
p = phantom(256,2)

# 그림 출력
heatmap(reverse(p, dims=1))

Julia.png

環境

  • OS: Windows10
  • Version: Julia 1.7.1, Tomography 0.1.5

マトラボ2

phantomでShepp-Logan ファントムを生成できる。引数がない場合は$256 \times 256$の配列が作られる。第一引数にはファントムの種類を、第二引数にはサイズを入力して任意のファントムを生成できる。以下は例のコードと実行結果です。

%팬텀 생성
p1 = phantom();
p2 = phantom('Modified Shepp-Logan',2^10);

%그림 출력
figure()

%첫번째 그림 p1
subplot(1,2,1)
imagesc(p1)
colorbar
title('p1')

%두번째 그림 p2
subplot(1,2,2)
imagesc(p2)
colorbar
title('p2')

環境

  • OS: Windows10
  • Version: R2020b

Matlab.png

パイソン3

scikit-imageパッケージskimagedataモジュールで、shepp_logan_phantom関数を使えばいい。$400 \times 400$サイズのファントムを生成する。サイズを変更するなら、resizeを使えばいい。以下は例のコードと実行結果です。

import matplotlib.pyplot as plt

from skimage.data import shepp_logan_phantom

# 팬텀 생성
P = shepp_logan_phantom() #default size=(400,400)

# 그림 출력
plt.imshow(P)
plt.show()

# 사이즈 변경
from skimage.transform import resize

P = shepp_logan_phantom()
P = resize(P, (256,256))

Python.png

環境

  • OS: Windows10
  • Version: Python 3.9.2, scikit-image 0.18.1