- 이미지 처리를 하다보면 원본 이미지와 레이블된 이미지가 동시에 들어가있는 경우가 있음.
- 이럴때는 glob 을 잘 활용해서 파일명으로 구분한 후, filepath 를 데이터프레임으로 만드는 코드가 유용함.
def get_file_row_nii(file_paths):
"""Produces ID of a patient, image and mask filenames from a particular path"""
file_paths = sorted(list(set(glob(f'{file_paths}/*.nii.gz')) - set(glob(f'{file_paths}/*_mask.nii.gz'))))
temp = []
for file in file_paths:
for i in range(0, len(nib.load(file).get_fdata().transpose())):
path = os.path.abspath(file)
path_no_ext, ext = "".join(path.split('.')[0]), ".".join(path.split('.')[1:]) # . 을 기준으로 파일명/확장자 분리
filename = os.path.basename(path)
patient_id = filename.split('.')[0]
temp.append([patient_id, path, f'{path_no_ext}_mask.{ext}', i])
filenames_df = pd.DataFrame(temp, columns=['Patient', 'image_filename', 'mask_filename','index'])
return filenames_df
'Python Code' 카테고리의 다른 글
Nibabel 사용법 (0) | 2024.01.19 |
---|---|
DICOM 파일 전처리 (0) | 2024.01.19 |
json 파일을 읽고 DataFrame으로 바꾸는 코드 (0) | 2023.11.21 |
Streamlit (파이썬 웹기반 시각화툴) (0) | 2023.11.14 |
Pytorch 이미지 분할(Image Split) 방법 (0) | 2023.11.06 |