logo

줄리아, 매트랩, 파이썬에서 Shepp-Logan 팬텀 쓰는 법 📂단층촬영

줄리아, 매트랩, 파이썬에서 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

사이킷이미지 패키지 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