KimbgAI

[python] ParRec 파일을 nifti 파일로 변환 본문

python

[python] ParRec 파일을 nifti 파일로 변환

KimbgAI 2024. 1. 9. 19:19
반응형

파이썬으로 ParRec 파일을 nifti 파일로 변환하는 코드

import nibabel as nib

par_path = '/data/2030/BrainMRI/Dataset/Sample/DTI_sample.PAR'
nifti_path = '/data/2030/BrainMRI/Dataset/Sample/DTI_sample.nii.gz'

img = nib.load(par_path)
nifti = nib.Nifti1Image(img.dataobj, img.affine, header=img.header)
nifti.set_data_dtype('<f4')
nifti.to_filename(nifti_path)

위 코드가 전부다.

 

nibabel 라이브러리를 이용해서 par 파일을 읽어와서 몇가지 처리만 해주면 된다.

알고계시겠지만, ParRec는 Par파일과 Rec파일 두 개를 묶어서 칭하는 표현이다.

따라서 주의할 점은 par 파일과 rec 파일이 반드시 같은 이름으로 되어있어야한다.

해더 파일인 par 파일을 읽어서, 실제 이미지 픽셀값이 들어있는 rec 파일과 매칭하기 때문이다.

 

위 코드 8번째 라인에서 '<f4' 는 NumPy에서 사용되는 dtype 문자열로, 데이터 타입과 바이트 순서에 대한 정보를 담고 있다. '<'는 리틀 엔디안(little-endian) 이라는 바이트 순서를 나타내며, 'f4'는 부동 소수점 숫자를 나타낸다.

f4는 4bytes(32bit) float, 즉 float32를 의미한다.

 

종종 ParRec 데이터에 문제가 있어 읽어들이지 못하는 경우가 있으니 대용량 데이터를 처리할때는 예외처리 반드시 하시길!!

 

 

 

아래는 ParRec 관련 내용에 대한 내용입니다.

Chat GPT가 아주 자세히 잘 알려주었지만, 종종 잘못된 내용도 있어 정리했습니다.

ParRec란?

ParRec은 Philips사의 자기 공명 이미징(MRI) 시스템에서 생성되는 데이터 형식으로, MRI 시퀀스에서 획득한 데이터를 저장하는 데 사용됨.


ParRec 파일은 주로 두 부분으로 구성됨.

1. 헤더 파일 (.PAR): 헤더 파일에는 데이터 획득에 대한 메타데이터와 설정이 포함되어 있습니다. 시퀀스 파라미터, 획득 매개변수, 이미지 크기, 슬라이스 두께 등이 헤더에 기록되어 있습니다. 이 메타데이터는 MRI 데이터를 제대로 해석하고 재구성하는 데 필요합니다.

2. 이미지 데이터 파일 (.REC): 이미지 데이터 파일에는 실제 MRI 이미지의 픽셀 값이 포함되어 있습니다. 각 이미지 슬라이스의 픽셀 값이 이 파일에 저장되어 있으며, 이를 통해 이미지가 재구성됩니다.

 

따라서, 

ParRec 형식은 일반적으로 다른 MRI 제조업체에서 사용하는 형식과 달라서, DICOM 과 같은 형식으로 변환해서 사용해야 처리가 편하답니다~

 

 

끝!

 

반응형

'python' 카테고리의 다른 글

[python] @property 사용하기  (0) 2023.02.06
[python] 데코레이터(decorator, @)란?  (0) 2023.02.06
tqdm 활용 with dataloader  (0) 2022.11.07
[python] 자주 사용하는 conda 명령어  (0) 2022.09.28
[python] pip install but can't import  (0) 2022.09.16
Comments