🐍 Python & library/SimpleITK

[SimpleITK] Python으로 medical image processing하기 - (4) Visualization

복만 2021. 8. 6. 10:52

SimpleITK를 이용해 Python으로 processing 하기

[SimpleITK] Python으로 medical image processing하기 - (1) Load, Resample

[SimpleITK] Python으로 medical image processing하기 - (2) Registration 1

[SimpleITK] Python으로 medical image processing하기 - (3) Registration 2

[SimpleITK] Python으로 medical image processing하기 - (4) Visualization

 

 

 

Visualization

Registration을 한 후, 결과가 잘 나왔는지를 확인하기 위해 visualization이 필요하다.

수치를 통해 결과를 확인할 수도 있지만, 여러 image를 registration하는 경우 image마다 상대적인 수치가 다르기 때문에 수치만으로는 registration이 잘 되었는지 평가하기 힘든 경우가 많닸다.

 

SimpleITK의 여러 function들을 이용해 visualization을 할 수 있다.

 

http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/05_Results_Visualization.html

 

05_Results_Visualization

We now create 3D images using all four combinations of alpha-blending and masks. As we are working with a 3D image and we want to save it as a figure for use in a manuscript, we will create a 2D montage image using the axial slices from the volumes.

insightsoftwareconsortium.github.io

 

위 notebook에서 SimpleITK의 여러 function들을 이용해 visualization을 하는 방법이 정리되어 있다.

단순히 overlap 하는 것만으로는 결과를 잘 확인하기 힘들어, alpha blending, checker board 등 다양한 방법을 이용한다.

 

위 notebook에서 사용하는 visualization 방법들 몇 가지를 소개하고, 코드는 생략하겠다.

 

 

Alpha blending

- 가장 기본적으로 시도해볼 수 있는 방법. 각 slice마다 두 image를 overlapping 하여 보여준다.

 

 

Checkerboard

- 격자무늬로 두 image를 번갈아가며 보여준다.

- 격자의 크기를 조절하며 다양한 방식으로 확인할 수 있다.

 

 

Combine scalar images to create color image

- 두 image에 색을 다르게 입혀 보여준다.

- 개인적으로 결과를 보기에 가장 용이했던 방법이었다.

 

 

 


 

이렇게 다양한 방법으로 visualization을 할 수 있다.

하지만 위 예시의 image들은 brain image라 전체적인 위치가 맞는지만 확인하면 됐지만,

나는 내부의 장기나 뼈의 위치가 맞는지까지 확인해야 해서 힘들었다.

 

그래서 나는 단순하게 image를 numpy array로 변환 후 plt.imshow를 이용했다.

한 image의 투명도를 조정하고 colormap을 다르게 하여 두 image를 동시에 띄웠는데, 이 방법이 가장 심플하고 효과적이었다.

plt.imshow(img_A, cmap='gray')
plt.imshow(img_B, cmap='RdPu', alpha=0.4)

- colormap은 여러가지 조합을 시도해 봤는데, 내 data는 pelvic mri/ct였고 mri-gray, ct-RdPu 조합이 가장 괜찮았다.

- alpha 값(투명도) 역시 여러 값들을 조합해 보았고, ct image의 alpha 값을 0.4로 두는 것이 가장 괜찮았다.

반응형