|
a |
|
b/utils/MINC.py |
|
|
1 |
import gzip |
|
|
2 |
import os |
|
|
3 |
import shutil |
|
|
4 |
|
|
|
5 |
import nibabel as nib |
|
|
6 |
|
|
|
7 |
from utils.NII import * |
|
|
8 |
|
|
|
9 |
|
|
|
10 |
class MINC(NII): |
|
|
11 |
|
|
|
12 |
def __init__(self, filename): |
|
|
13 |
if filename.endswith(".mnc"): |
|
|
14 |
with open(filename, 'rb') as f_in: |
|
|
15 |
with gzip.open(filename + ".gz", 'wb') as f_out: |
|
|
16 |
shutil.copyfileobj(f_in, f_out) |
|
|
17 |
# Load the MINC file using niBabel, convert it to Nifti format |
|
|
18 |
minc = nib.load(filename) |
|
|
19 |
basename = minc.get_filename().split(os.extsep, 1)[0] |
|
|
20 |
|
|
|
21 |
if not os.path.isfile(basename + ".nii.gz"): |
|
|
22 |
out = nib.Nifti1Image(minc.get_data(), affine=minc.affine) |
|
|
23 |
nib.save(out, basename + '.nii.gz') |
|
|
24 |
|
|
|
25 |
NII.__init__(self, basename + '.nii.gz') |