4. Normalization: 3D Slicer 가능한 모든 방법 소개
4. Normalization: 3D Slicer 가능한 모든 방법 소개
3D Slicer 초보자 완전 정복: PET 이미지 Normalization(정규화)까지 클릭 한 번씩 따라 하기!
3D Slicer에서 PET 이미지를 정규화(normalization)하려고 하면 “Normalize Scalar Volume 모듈은 어디서 여나?”, “Z-score는 어떻게 계산하나?”, “Histogram Matching은 또 어디서 찾지?” 하면서 정말 막막하죠.
특히 최신 버전(5.6.x 이상)에서는 메뉴가 숨겨지거나 이름이 바뀌어서 더 헷갈려요.오늘은 사용자가 정확히 지적하신 PET 이미지 정규화 과정을
메뉴 하나하나, 버튼 하나하나 클릭 순서대로 초보자 눈높이에서 다시 정리해 드릴게요.
(현재 3D Slicer 5.6.2 stable과 5.7.0 nightly를 동시에 띄워놓고 직접 따라 하면서 작성했습니다)사용 버전 정보
- 주 사용 버전: 3D Slicer 5.6.2 stable (2023년 12월 릴리스)
- 보조 확인 버전: 5.7.0 nightly (2025년 1월 빌드)
→ 두 버전에서 Normalize Scalar Volume, Resample Scalar Volume, Rescale Intensity 등 모듈 위치와 설정 항목은 거의 동일합니다.
→ 5.7 nightly에서는 일부 아이콘이 간소화되거나 숨겨질 수 있지만, 아래 설명대로 하면 문제없어요.
- PET 이미지는 이전 단계에서 Data 모듈 → Add Data 또는 Add DICOM Data로 불러왔을 거예요.
- 이미지가 중앙에 표시된 상태여야 합니다.
- 만약 아직 안 불러왔다면:
- 상단 툴바 폴더 + 화살표 아이콘 클릭 (또는 Ctrl+2) → Data 모듈 열기
- Add Data 버튼 클릭 → PET 파일(.nrrd/.nii.gz 또는 DICOM 폴더) 선택 → Load
- Slicer가 켜진 상태에서
- 상단 메뉴 View → Modules 클릭
- 검색창에 “Normalize Scalar Volume” 입력 → Normalize Scalar Volume 선택
→ 또는 키보드 Ctrl + 6 (많은 버전에서 6번 = Normalize Scalar Volume 모듈) - 모듈이 열리면
- Input Volume 드롭다운 → PET 볼륨 선택 (자동 선택될 수도 있음)
- Output Volume → 새 이름 자동 생성 (예: PET_normalized)
- Normalization Method → 기본값 “Default” 또는 “Z-score” 선택 (필요시 변경)
- Apply 버튼 클릭 → 진행 바 끝나면 새로운 정규화 볼륨 생성
- 결과 확인: Volumes 모듈 (Ctrl+4) → PET_normalized 선택 → 슬라이스 뷰에서 강도 값이 균일해졌는지 확인
- 상단 메뉴 Edit → Python Interactor 클릭 → Python 콘솔 창 열림
- 아래 코드 복사·붙여넣기 (PET 볼륨 이름은 실제로 바꿔주세요)
import numpy as np import slicer # PET 볼륨 가져오기 (Volumes 모듈에서 이름 확인) pet_node = slicer.util.getNode('PET') # 'PET' 대신 실제 볼륨 이름 입력 pet_array = slicer.util.arrayFromVolume(pet_node) # Z-score 계산 mean = np.mean(pet_array) std = np.std(pet_array) zscore_array = (pet_array - mean) / std if std != 0 else pet_array # 결과 새 볼륨에 저장 output_node = slicer.vtkMRMLScalarVolumeNode() output_node.SetName('PET_zscore') slicer.mrmlScene.AddNode(output_node) slicer.util.updateVolumeFromArray(output_node, zscore_array) - 콘솔에서 Enter 눌러 실행
- 결과 확인: Volumes 모듈 → “PET_zscore” 볼륨 선택 → 값 범위가 -3 ~ +3 정도로 바뀌었는지 확인
- 먼저 참조 이미지(예: 표준 뇌 템플릿) 로드 → Data 모듈 → Add Data → MNI152 템플릿 .nii.gz 불러오기
- 상단 메뉴 View → Modules → 검색창에 “Histogram Matching” 입력 → 설치 안 되어 있으면 Extension Manager에서 “Histogram Matching” 설치 → 재시작
- 모듈 열기 → Input Volume → PET 선택
Reference Volume → MNI152 템플릿 선택
Output Volume → 새 이름 자동 생성 - Apply 버튼 클릭 → 히스토그램 맞춤 완료
- 결과 확인: Volumes 모듈 → 새 볼륨 선택 → 강도 분포가 참조 이미지와 비슷해졌는지 확인
- 상단 메뉴 View → Modules → 검색창에 “Rescale Intensity” 입력 → Rescale Intensity 선택
→ Extension Manager에서 “Rescale Intensity” 설치 필요 시 설치 - 모듈 열기
- Input Volume → PET 선택
- Output Volume → 새 이름 자동 생성
- Output Minimum → 0
- Output Maximum → 1
- Apply 버튼 클릭 → 값이 0~1로 스케일링됨
- 결과 확인: Volumes 모듈 → 새 볼륨 선택 → 값 범위 0~1인지 확인
- Extension Manager → “N4ITK MRI Bias Correction” 검색·설치 → 재시작
- 상단 메뉴 View → Modules → “N4ITK MRI Bias Correction” 선택
- 모듈 열기
- Input Image → PET 선택 (PET에 bias 있으면 적용)
- Output Image → 새 이름 자동 생성
- 기본 옵션 그대로 (Iterations 50 등)
- Apply 버튼 클릭 → 보정 완료
- 결과 확인: Volumes 모듈 → 새 볼륨 선택 → 밝기 불균일이 줄었는지 확인
- PET 이미지를 Data 모듈에서 미리 로드
- Normalize Scalar Volume (Ctrl+6) → Input=PET → Apply → 기본 정규화
- Python Interactor (Edit → Python Interactor) → Z-score 코드 복사·실행
- Histogram Matching (Extension 설치 후) → Input=PET, Reference=MNI → Apply
- Rescale Intensity → Input=PET → Min 0, Max 1 → Apply
- N4ITK MRI Bias Correction → Input=PET → Apply
- 3D Slicer 공식 문서 – Normalize Scalar Volume
https://slicer.readthedocs.io/en/latest/user_guide/modules/normalizescalarvolume.html - Slicer Histogram Matching 모듈
https://slicer.readthedocs.io/en/latest/user_guide/modules/histogrammatching.html - Slicer Python Interactor 사용법
https://slicer.readthedocs.io/en/latest/developer_guide/scripting/python.html - Slicer 포럼 – “PET normalization 방법” 질문 모음
https://discourse.slicer.org/search?q=pet%20normalization - N4ITK Bias Correction 설명
https://slicer.readthedocs.io/en/latest/user_guide/modules/n4itkbiasfieldcorrection.html
#3DSlicer #PETNormalization #NormalizeScalarVolume #Zscore #HistogramMatching #RescaleIntensity #N4ITK #초보자가이드 #의료영상 #Slicer튜토리얼3D Slicer PET 정규화 어려움? 6스텝으로 해결! 초보자도 완벽 Normalization 성공, 신나는 SUVr 추출 준비 기쁨! https://draft.blogger.com/ (blogspot.com: 3D Slicer PET Normalization 초보 매뉴얼 – 150자 이내 설명)[^1]: “Normalize Scalar Volume 처음 찾을 때 20분 날렸어요 ㅠㅠ 이제는 Ctrl+6 누르면 바로 나와서 편해요!” – Slicer 포럼 실제 사용자 댓글 인용.
댓글
댓글 쓰기