コード例 #1
0
ファイル: test_philips.py プロジェクト: icometrix/dicom2nifti
 def test_is_singleframe_diffusion_imaging(self):
     assert convert_philips._is_singleframe_diffusion_imaging(
         convert_philips._get_grouped_dicoms(read_dicom_directory(test_data.PHILIPS_DTI)))
     assert not convert_philips._is_singleframe_diffusion_imaging(
         convert_philips._get_grouped_dicoms(read_dicom_directory(test_data.PHILIPS_ANATOMICAL)))
     assert not convert_philips._is_singleframe_diffusion_imaging(
         convert_philips._get_grouped_dicoms(read_dicom_directory(test_data.PHILIPS_FMRI)))
コード例 #2
0
 def test_is_4d(self):
     diffusion_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_DTI))
     _4d_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_FMRI))
     anatomical_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_ANATOMICAL))
     self.assertTrue(convert_ge._is_4d(diffusion_group))
     self.assertTrue(convert_ge._is_4d(_4d_group))
     self.assertFalse(convert_ge._is_4d(anatomical_group))
コード例 #3
0
    def test_4d(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_FMRI),
                                                     None)
            self.assertTrue(results.get('NII_FILE') is None)
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_FMRI),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.SIEMENS_FMRI)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_FMRI_IMPLICIT),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.SIEMENS_FMRI_IMPLICIT)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.SIEMENS_CLASSIC_FMRI)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI_IMPLICIT),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.SIEMENS_CLASSIC_FMRI_IMPLICIT)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #4
0
    def test_diffusion_images(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_DTI),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(results['NII_FILE'],
                                 ground_thruth_filenames(
                                     test_data.GE_DTI)[0]) is True
            assert compare_bval(results['BVAL_FILE'],
                                ground_thruth_filenames(
                                    test_data.GE_DTI)[2]) is True
            assert compare_bvec(results['BVEC_FILE'],
                                ground_thruth_filenames(
                                    test_data.GE_DTI)[3]) is True

            convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_DTI_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[0]) is True
            assert compare_bval(
                results['BVAL_FILE'],
                ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[2]) is True
            assert compare_bvec(
                results['BVEC_FILE'],
                ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[3]) is True
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #5
0
ファイル: test_ge.py プロジェクト: clintonjwang/dicom2nifti
    def test_anatomical(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_ANATOMICAL), None)
            self.assertTrue(results.get('NII_FILE') is None)
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_ANATOMICAL),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.GE_ANATOMICAL)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
            results = convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_ANATOMICAL_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.GE_ANATOMICAL_IMPLICIT)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #6
0
ファイル: test_siemens.py プロジェクト: icometrix/dicom2nifti
    def test_4d(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_FMRI),
                                                     None)
            self.assertTrue(results.get('NII_FILE') is None)
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_FMRI),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.SIEMENS_FMRI)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_FMRI_IMPLICIT),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.SIEMENS_FMRI_IMPLICIT)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.SIEMENS_CLASSIC_FMRI)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_siemens.dicom_to_nifti(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI_IMPLICIT),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.SIEMENS_CLASSIC_FMRI_IMPLICIT)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #7
0
ファイル: test_philips.py プロジェクト: icometrix/dicom2nifti
    def test_anatomical(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_philips.dicom_to_nifti(read_dicom_directory(test_data.PHILIPS_ANATOMICAL),
                                                     None)
            self.assertTrue(results.get('NII_FILE') is None)
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_philips.dicom_to_nifti(read_dicom_directory(test_data.PHILIPS_ANATOMICAL),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                 ground_thruth_filenames(test_data.PHILIPS_ANATOMICAL)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_philips.dicom_to_nifti(read_dicom_directory(test_data.PHILIPS_ANATOMICAL_IMPLICIT),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                 ground_thruth_filenames(test_data.PHILIPS_ANATOMICAL_IMPLICIT)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_philips.dicom_to_nifti(read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                 ground_thruth_filenames(test_data.PHILIPS_ENHANCED_ANATOMICAL)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            self.assertRaises(ConversionError,
                              convert_philips.dicom_to_nifti,
                              read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL_IMPLICIT),
                              os.path.join(tmp_output_dir, 'test.nii.gz'))
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #8
0
 def test_is_diffusion_imaging(self):
     diffusion_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_DTI))
     _4d_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_FMRI))
     anatomical_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_ANATOMICAL))
     assert convert_ge._is_diffusion_imaging(diffusion_group)
     assert not convert_ge._is_diffusion_imaging(_4d_group)
     assert not convert_ge._is_diffusion_imaging(anatomical_group)
コード例 #9
0
ファイル: test_ge.py プロジェクト: icometrix/dicom2nifti
 def test_is_4d(self):
     diffusion_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_DTI))
     _4d_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_FMRI))
     anatomical_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_ANATOMICAL))
     self.assertTrue(convert_ge._is_4d(diffusion_group))
     self.assertTrue(convert_ge._is_4d(_4d_group))
     self.assertFalse(convert_ge._is_4d(anatomical_group))
コード例 #10
0
 def test_is_mosaic(self):
     # test wit directory
     assert convert_siemens._is_mosaic(
         read_dicom_directory(test_data.SIEMENS_DTI))
     assert convert_siemens._is_mosaic(
         read_dicom_directory(test_data.SIEMENS_FMRI))
     assert not convert_siemens._is_mosaic(
         read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI))
     assert not convert_siemens._is_mosaic(
         read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI))
     assert not convert_siemens._is_mosaic(
         read_dicom_directory(test_data.SIEMENS_ANATOMICAL))
     # test with grouped dicoms
     assert convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(
             read_dicom_directory(test_data.SIEMENS_DTI)))
     assert convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(
             read_dicom_directory(test_data.SIEMENS_FMRI)))
     assert not convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(
             read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI)))
     assert not convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(
             read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI)))
     assert not convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(
             read_dicom_directory(test_data.SIEMENS_ANATOMICAL)))
コード例 #11
0
ファイル: test_ge.py プロジェクト: icometrix/dicom2nifti
 def test_is_diffusion_imaging(self):
     diffusion_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_DTI))
     _4d_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_FMRI))
     anatomical_group = convert_ge._get_grouped_dicoms(read_dicom_directory(test_data.GE_ANATOMICAL))
     assert convert_ge._is_diffusion_imaging(diffusion_group)
     assert not convert_ge._is_diffusion_imaging(_4d_group)
     assert not convert_ge._is_diffusion_imaging(anatomical_group)
コード例 #12
0
    def test_4d(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_siemens.dicom_to_nifti(
                read_dicom_directory(test_data.SIEMENS_FMRI),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.SIEMENS_FMRI)[0]) is True

            results = convert_siemens.dicom_to_nifti(
                read_dicom_directory(test_data.SIEMENS_FMRI_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(
                    test_data.SIEMENS_FMRI_IMPLICIT)[0]) is True

            results = convert_siemens.dicom_to_nifti(
                read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(
                    test_data.SIEMENS_CLASSIC_FMRI)[0]) is True

            results = convert_siemens.dicom_to_nifti(
                read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(
                    test_data.SIEMENS_CLASSIC_FMRI_IMPLICIT)[0]) is True
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #13
0
ファイル: test_philips.py プロジェクト: ieee820/dicom2nifti
    def test_anatomical(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_philips.dicom_to_nifti(
                read_dicom_directory(test_data.PHILIPS_ANATOMICAL),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(
                    test_data.PHILIPS_ANATOMICAL)[0]) is True

            results = convert_philips.dicom_to_nifti(
                read_dicom_directory(test_data.PHILIPS_ANATOMICAL_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(
                    test_data.PHILIPS_ANATOMICAL_IMPLICIT)[0]) is True

            results = convert_philips.dicom_to_nifti(
                read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(
                    test_data.PHILIPS_ENHANCED_ANATOMICAL)[0]) is True

            self.assertRaises(
                ConversionError, convert_philips.dicom_to_nifti,
                read_dicom_directory(
                    test_data.PHILIPS_ENHANCED_ANATOMICAL_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #14
0
 def test_is_slice_increment_inconsistent(self):
     self.assertFalse(
         is_slice_increment_inconsistent(
             sort_dicoms(read_dicom_directory(test_data.GE_ANATOMICAL))))
     self.assertTrue(
         is_slice_increment_inconsistent(
             sort_dicoms(
                 read_dicom_directory(test_data.FAILING_SLICEINCREMENT))))
コード例 #15
0
    def test_validate_sliceincrement(self):
        validate_slice_increment(
            sort_dicoms(read_dicom_directory(test_data.GE_ANATOMICAL)))

        self.assertRaises(
            ConversionValidationError, validate_slice_increment,
            sort_dicoms(read_dicom_directory(
                test_data.FAILING_SLICEINCREMENT)))
コード例 #16
0
ファイル: test_philips.py プロジェクト: ieee820/dicom2nifti
 def test_is_philips(self):
     assert convert_philips.is_philips(
         read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not convert_philips.is_philips(
         read_dicom_directory(test_data.SIEMENS_ANATOMICAL))
     assert not convert_philips.is_philips(
         read_dicom_directory(test_data.GE_ANATOMICAL))
     assert not convert_philips.is_philips(
         read_dicom_directory(test_data.GENERIC_ANATOMICAL))
コード例 #17
0
ファイル: test_dicom.py プロジェクト: fmljr/dicom2nifti
 def test_get_vendor(self):
     assert convert_dicom._get_vendor(
         read_dicom_directory(test_data.SIEMENS_ANATOMICAL)) == convert_dicom.Vendor.SIEMENS
     assert convert_dicom._get_vendor(read_dicom_directory(test_data.GE_ANATOMICAL)) == convert_dicom.Vendor.GE
     assert convert_dicom._get_vendor(
         read_dicom_directory(test_data.PHILIPS_ANATOMICAL)) == convert_dicom.Vendor.PHILIPS
     assert convert_dicom._get_vendor(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL)) == convert_dicom.Vendor.PHILIPS
     assert convert_dicom._get_vendor(
         read_dicom_directory(test_data.GENERIC_ANATOMICAL)) == convert_dicom.Vendor.GENERIC
コード例 #18
0
ファイル: test_ge.py プロジェクト: clintonjwang/dicom2nifti
 def test_is_ge(self):
     assert not convert_ge.is_ge(
         read_dicom_directory(test_data.SIEMENS_ANATOMICAL))
     assert convert_ge.is_ge(read_dicom_directory(test_data.GE_ANATOMICAL))
     assert not convert_ge.is_ge(
         read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not convert_ge.is_ge(
         read_dicom_directory(test_data.GENERIC_ANATOMICAL))
     assert not convert_ge.is_ge(
         read_dicom_directory(test_data.HITACHI_ANATOMICAL))
コード例 #19
0
 def test_is_singleframe_diffusion_imaging(self):
     assert convert_philips._is_singleframe_diffusion_imaging(
         convert_philips._get_grouped_dicoms(
             read_dicom_directory(test_data.PHILIPS_DTI)))
     assert not convert_philips._is_singleframe_diffusion_imaging(
         convert_philips._get_grouped_dicoms(
             read_dicom_directory(test_data.PHILIPS_ANATOMICAL)))
     assert not convert_philips._is_singleframe_diffusion_imaging(
         convert_philips._get_grouped_dicoms(
             read_dicom_directory(test_data.PHILIPS_FMRI)))
コード例 #20
0
ファイル: test_siemens.py プロジェクト: icometrix/dicom2nifti
 def test_is_classic_4d(self):
     assert not convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_DTI)))
     assert not convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_FMRI)))
     assert convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI)))
     assert convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI)))
     assert not convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_ANATOMICAL)))
コード例 #21
0
 def test_is_classic_4d(self):
     assert not convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_DTI)))
     assert not convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_FMRI)))
     assert convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI)))
     assert convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI)))
     assert not convert_siemens._is_classic_4d(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_ANATOMICAL)))
コード例 #22
0
 def test_is_diffusion_imaging(self):
     assert convert_siemens._is_diffusion_imaging(
         read_dicom_directory(test_data.SIEMENS_DTI)[0])
     assert not convert_siemens._is_diffusion_imaging(
         read_dicom_directory(test_data.SIEMENS_FMRI)[0])
     assert convert_siemens._is_diffusion_imaging(
         read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI)[0])
     assert not convert_siemens._is_diffusion_imaging(
         read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI)[0])
     assert not convert_siemens._is_diffusion_imaging(
         read_dicom_directory(test_data.SIEMENS_ANATOMICAL)[0])
コード例 #23
0
 def test_is_4d(self):
     assert convert_siemens._is_4d(
         read_dicom_directory(test_data.SIEMENS_DTI))
     assert convert_siemens._is_4d(
         read_dicom_directory(test_data.SIEMENS_FMRI))
     assert not convert_siemens._is_4d(
         read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI))
     assert not convert_siemens._is_4d(
         read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI))
     assert not convert_siemens._is_4d(
         read_dicom_directory(test_data.SIEMENS_ANATOMICAL))
コード例 #24
0
ファイル: test_common.py プロジェクト: icometrix/dicom2nifti
    def test_validate_slicecount_disabled(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            self.assertRaises(ConversionValidationError,
                              dicom_to_nifti,
                              read_dicom_directory(test_data.FAILING_SLICECOUNT),
                              os.path.join(tmp_output_dir, 'test.nii.gz'))
            dicom2nifti.disable_validate_slicecount()
            dicom_to_nifti(read_dicom_directory(test_data.FAILING_SLICECOUNT),
                           os.path.join(tmp_output_dir, 'test.nii.gz'))

        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #25
0
    def test_validate_slicecount_disabled(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            self.assertRaises(
                ConversionValidationError, dicom_to_nifti,
                read_dicom_directory(test_data.FAILING_SLICECOUNT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            dicom2nifti.disable_validate_slicecount()
            dicom_to_nifti(read_dicom_directory(test_data.FAILING_SLICECOUNT),
                           os.path.join(tmp_output_dir, 'test.nii.gz'))

        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #26
0
 def test_anatomical(self):
     tmp_output_dir = tempfile.mkdtemp()
     try:
         results = convert_ge.dicom_to_nifti(read_dicom_directory(test_data.GE_ANATOMICAL),
                                   os.path.join(tmp_output_dir, 'test.nii.gz'))
         assert compare_nifti(results['NII_FILE'],
                              ground_thruth_filenames(test_data.GE_ANATOMICAL)[0]) == True
         results = convert_ge.dicom_to_nifti(read_dicom_directory(test_data.GE_ANATOMICAL_IMPLICIT),
                                   os.path.join(tmp_output_dir, 'test.nii.gz'))
         assert compare_nifti(results['NII_FILE'],
                              ground_thruth_filenames(test_data.GE_ANATOMICAL_IMPLICIT)[0]) == True
     finally:
         shutil.rmtree(tmp_output_dir)
コード例 #27
0
ファイル: test_common.py プロジェクト: icometrix/dicom2nifti
    def test_validate_orientation_disabled(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            dicom2nifti.disable_validate_orthogonal()  # this will also fail on this data
            dicom2nifti.disable_validate_slice_increment()  # this will also fail on this data
            dicom2nifti.disable_validate_slicecount()
            self.assertRaises(ConversionValidationError,
                              dicom_to_nifti,
                              read_dicom_directory(test_data.FAILING_ORIENTATION),
                              os.path.join(tmp_output_dir, 'test.nii.gz'))
            dicom2nifti.disable_validate_orientation()
            dicom_to_nifti(read_dicom_directory(test_data.FAILING_ORIENTATION),
                           os.path.join(tmp_output_dir, 'test.nii.gz'))

        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #28
0
ファイル: test_generic.py プロジェクト: icometrix/dicom2nifti
    def test_anatomical(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_generic.dicom_to_nifti(read_dicom_directory(test_data.GE_ANATOMICAL),
                                                     None)
            self.assertTrue(results.get('NII_FILE') is None)
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_generic.dicom_to_nifti(read_dicom_directory(test_data.GE_ANATOMICAL),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.GE_ANATOMICAL)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #29
0
ファイル: test_ge.py プロジェクト: clintonjwang/dicom2nifti
    def test_diffusion_images(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_DTI), None)
            self.assertTrue(results.get('NII_FILE') is None)
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
            self.assertTrue(results.get('BVAL_FILE') is None)
            self.assertTrue(isinstance(results['BVAL'], numpy.ndarray))
            self.assertTrue(results.get('BVEC_FILE') is None)
            self.assertTrue(isinstance(results['BVEC'], numpy.ndarray))

            results = convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_DTI),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                 ground_thruth_filenames(test_data.GE_DTI)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
            assert_compare_bval(results['BVAL_FILE'],
                                ground_thruth_filenames(test_data.GE_DTI)[2])
            self.assertTrue(isinstance(results['BVAL'], numpy.ndarray))
            assert_compare_bval(results['BVEC_FILE'],
                                ground_thruth_filenames(test_data.GE_DTI)[3])
            self.assertTrue(isinstance(results['BVEC'], numpy.ndarray))

            convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_DTI_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
            assert_compare_bval(
                results['BVAL_FILE'],
                ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[2])
            self.assertTrue(isinstance(results['BVAL'], numpy.ndarray))
            assert_compare_bval(
                results['BVEC_FILE'],
                ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[3])
            self.assertTrue(isinstance(results['BVEC'], numpy.ndarray))
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #30
0
    def test_validate_orientation_disabled(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            dicom2nifti.disable_validate_orthogonal(
            )  # this will also fail on this data
            dicom2nifti.disable_validate_slice_increment(
            )  # this will also fail on this data
            dicom2nifti.disable_validate_slicecount()
            self.assertRaises(
                ConversionValidationError, dicom_to_nifti,
                read_dicom_directory(test_data.FAILING_ORIENTATION),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            dicom2nifti.disable_validate_orientation()
            dicom_to_nifti(read_dicom_directory(test_data.FAILING_ORIENTATION),
                           os.path.join(tmp_output_dir, 'test.nii.gz'))

        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #31
0
ファイル: test_siemens.py プロジェクト: icometrix/dicom2nifti
 def test_is_mosaic(self):
     # test wit directory
     assert convert_siemens._is_mosaic(read_dicom_directory(test_data.SIEMENS_DTI))
     assert convert_siemens._is_mosaic(read_dicom_directory(test_data.SIEMENS_FMRI))
     assert not convert_siemens._is_mosaic(read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI))
     assert not convert_siemens._is_mosaic(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI))
     assert not convert_siemens._is_mosaic(read_dicom_directory(test_data.SIEMENS_ANATOMICAL))
     # test with grouped dicoms
     assert convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_DTI)))
     assert convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_FMRI)))
     assert not convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI)))
     assert not convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI)))
     assert not convert_siemens._is_mosaic(
         convert_siemens._classic_get_grouped_dicoms(read_dicom_directory(test_data.SIEMENS_ANATOMICAL)))
コード例 #32
0
ファイル: test_ge.py プロジェクト: icometrix/dicom2nifti
    def test_diffusion_images_old(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_ge.dicom_to_nifti(read_dicom_directory(test_data.GE_DTI_OLD),
                                                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.GE_DTI_OLD)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #33
0
    def test_4d(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_philips.dicom_to_nifti(
                read_dicom_directory(test_data.PHILIPS_FMRI), None)
            self.assertTrue(results.get('NII_FILE') is None)
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_philips.dicom_to_nifti(
                read_dicom_directory(test_data.PHILIPS_FMRI),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.PHILIPS_FMRI)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_philips.dicom_to_nifti(
                read_dicom_directory(test_data.PHILIPS_FMRI_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.PHILIPS_FMRI_IMPLICIT)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

            results = convert_philips.dicom_to_nifti(
                read_dicom_directory(test_data.PHILIPS_ENHANCED_FMRI),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.PHILIPS_ENHANCED_FMRI)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
            self.assertRaises(
                ConversionError, convert_philips.dicom_to_nifti,
                read_dicom_directory(test_data.PHILIPS_ENHANCED_FMRI_IMPLICIT),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #34
0
ファイル: test_philips.py プロジェクト: icometrix/dicom2nifti
 def test_is_multiframe_dicom(self):
     assert common.is_multiframe_dicom(read_dicom_directory(test_data.PHILIPS_ENHANCED_DTI))
     assert not common.is_multiframe_dicom(read_dicom_directory(test_data.PHILIPS_DTI))
     assert common.is_multiframe_dicom(read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL))
     assert not common.is_multiframe_dicom(read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert common.is_multiframe_dicom(read_dicom_directory(test_data.PHILIPS_ENHANCED_FMRI))
     assert not common.is_multiframe_dicom(read_dicom_directory(test_data.PHILIPS_FMRI))
コード例 #35
0
ファイル: test_philips.py プロジェクト: icometrix/dicom2nifti
 def test_is_multiframe_anatomical(self):
     assert not convert_philips._is_multiframe_anatomical(read_dicom_directory(test_data.PHILIPS_ENHANCED_DTI))
     assert not convert_philips._is_multiframe_anatomical(read_dicom_directory(test_data.PHILIPS_DTI))
     assert convert_philips._is_multiframe_anatomical(read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL))
     assert not convert_philips._is_multiframe_anatomical(read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not convert_philips._is_multiframe_anatomical(read_dicom_directory(test_data.PHILIPS_ENHANCED_FMRI))
     assert not convert_philips._is_multiframe_anatomical(read_dicom_directory(test_data.PHILIPS_FMRI))
コード例 #36
0
ファイル: test_philips.py プロジェクト: icometrix/dicom2nifti
 def test_is_singleframe_4d(self):
     assert not convert_philips._is_singleframe_4d(read_dicom_directory(test_data.PHILIPS_ENHANCED_DTI))
     assert convert_philips._is_singleframe_4d(read_dicom_directory(test_data.PHILIPS_DTI))
     assert not convert_philips._is_singleframe_4d(read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL))
     assert not convert_philips._is_singleframe_4d(read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not convert_philips._is_singleframe_4d(read_dicom_directory(test_data.PHILIPS_ENHANCED_FMRI))
     assert convert_philips._is_singleframe_4d(read_dicom_directory(test_data.PHILIPS_FMRI))
コード例 #37
0
ファイル: test_generic.py プロジェクト: icometrix/dicom2nifti
    def test_not_a_volume(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            settings.disable_validate_orthogonal()
            with self.assertRaises(ConversionError) as exception:
                convert_generic.dicom_to_nifti(read_dicom_directory(test_data.FAILING_NOTAVOLUME),
                                               os.path.join(tmp_output_dir, 'test.nii.gz'))
            self.assertEqual(str(exception.exception),
                             'NOT_A_VOLUME')

        finally:
            settings.enable_validate_orthogonal()
            shutil.rmtree(tmp_output_dir)
コード例 #38
0
    def test_not_a_volume(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            settings.disable_validate_orthogonal()
            with self.assertRaises(ConversionError) as exception:
                convert_generic.dicom_to_nifti(
                    read_dicom_directory(test_data.FAILING_NOTAVOLUME),
                    os.path.join(tmp_output_dir, 'test.nii.gz'))
            self.assertEqual(str(exception.exception), 'NOT_A_VOLUME')

        finally:
            settings.enable_validate_orthogonal()
            shutil.rmtree(tmp_output_dir)
コード例 #39
0
ファイル: test_philips.py プロジェクト: icometrix/dicom2nifti
 def test_anatomical_implicit(self):
     tmp_output_dir = tempfile.mkdtemp()
     try:
         settings.disable_validate_multiframe_implicit()
         results = convert_philips.dicom_to_nifti(read_dicom_directory(
             test_data.PHILIPS_ENHANCED_ANATOMICAL_IMPLICIT),
             os.path.join(tmp_output_dir, 'test.nii.gz'))
         assert_compare_nifti(results['NII_FILE'],
                              ground_thruth_filenames(test_data.PHILIPS_ENHANCED_ANATOMICAL_IMPLICIT)[0])
         self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
         settings.enable_validate_multiframe_implicit()
     finally:
         shutil.rmtree(tmp_output_dir)
コード例 #40
0
ファイル: test_ge.py プロジェクト: clintonjwang/dicom2nifti
    def test_diffusion_images_old(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_ge.dicom_to_nifti(
                read_dicom_directory(test_data.GE_DTI_OLD),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(test_data.GE_DTI_OLD)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #41
0
ファイル: test_ge.py プロジェクト: icometrix/dicom2nifti
    def test_diffusion_images(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            results = convert_ge.dicom_to_nifti(read_dicom_directory(test_data.GE_DTI),
                                                None)
            self.assertTrue(results.get('NII_FILE') is None)
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
            self.assertTrue(results.get('BVAL_FILE') is None)
            self.assertTrue(isinstance(results['BVAL'], numpy.ndarray))
            self.assertTrue(results.get('BVEC_FILE') is None)
            self.assertTrue(isinstance(results['BVEC'], numpy.ndarray))

            results = convert_ge.dicom_to_nifti(read_dicom_directory(test_data.GE_DTI),
                                                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.GE_DTI)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
            assert_compare_bval(results['BVAL_FILE'],
                                       ground_thruth_filenames(test_data.GE_DTI)[2])
            self.assertTrue(isinstance(results['BVAL'], numpy.ndarray))
            assert_compare_bval(results['BVEC_FILE'],
                                       ground_thruth_filenames(test_data.GE_DTI)[3])
            self.assertTrue(isinstance(results['BVEC'], numpy.ndarray))

            convert_ge.dicom_to_nifti(read_dicom_directory(test_data.GE_DTI_IMPLICIT),
                                      os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                        ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))
            assert_compare_bval(results['BVAL_FILE'],
                                       ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[2])
            self.assertTrue(isinstance(results['BVAL'], numpy.ndarray))
            assert_compare_bval(results['BVEC_FILE'],
                                       ground_thruth_filenames(test_data.GE_DTI_IMPLICIT)[3])
            self.assertTrue(isinstance(results['BVEC'], numpy.ndarray))
        finally:
            shutil.rmtree(tmp_output_dir)
コード例 #42
0
ファイル: test_philips.py プロジェクト: icometrix/dicom2nifti
 def test_is_multiframe_diffusion_imaging(self):
     assert convert_philips._is_multiframe_diffusion_imaging(read_dicom_directory(test_data.PHILIPS_ENHANCED_DTI))
     assert not convert_philips._is_multiframe_diffusion_imaging(read_dicom_directory(test_data.PHILIPS_DTI))
     assert not convert_philips._is_multiframe_diffusion_imaging(read_dicom_directory(
         test_data.PHILIPS_ENHANCED_ANATOMICAL))
     assert not convert_philips._is_multiframe_diffusion_imaging(read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not convert_philips._is_multiframe_diffusion_imaging(read_dicom_directory(
         test_data.PHILIPS_ENHANCED_FMRI))
     assert not convert_philips._is_multiframe_diffusion_imaging(read_dicom_directory(test_data.PHILIPS_FMRI))
コード例 #43
0
ファイル: test_philips.py プロジェクト: ieee820/dicom2nifti
 def test_anatomical_implicit(self):
     tmp_output_dir = tempfile.mkdtemp()
     try:
         settings.disable_validate_multiframe_implicit()
         results = convert_philips.dicom_to_nifti(
             read_dicom_directory(
                 test_data.PHILIPS_ENHANCED_ANATOMICAL_IMPLICIT),
             os.path.join(tmp_output_dir, 'test.nii.gz'))
         assert compare_nifti(
             results['NII_FILE'],
             ground_thruth_filenames(
                 test_data.PHILIPS_ENHANCED_ANATOMICAL_IMPLICIT)[0]) is True
         settings.enable_validate_multiframe_implicit()
     finally:
         shutil.rmtree(tmp_output_dir)
コード例 #44
0
ファイル: convert_dicom.py プロジェクト: ieee820/dicom2nifti
def dicom_series_to_nifti(original_dicom_directory,
                          output_file,
                          reorient_nifti=True):
    """ Converts dicom single series (see pydicom) to nifty, mimicking SPM

    Examples: See unit test


    will return a dictionary containing
    - the NIFTI under key 'NIFTI'
    - the NIFTI file path under 'NII_FILE'
    - the BVAL file path under 'BVAL_FILE' (only for dti)
    - the BVEC file path under 'BVEC_FILE' (only for dti)

    IMPORTANT:
    If no specific sequence type can be found it will default to anatomical and try to convert.
    You should check that the data you are trying to convert is supported by this code

    Inspired by http://nipy.sourceforge.net/nibabel/dicom/spm_dicom.html
    Inspired by http://code.google.com/p/pydicom/source/browse/source/dicom/contrib/pydicom_series.py

    :param reorient_nifti: if True the nifti affine and data will be updated so the data is stored LAS oriented
    :param output_file: file path to write to
    :param original_dicom_directory: directory with the dicom files for a single series/scan
    """
    # copy files so we can can modify without altering the original
    temp_directory = tempfile.mkdtemp()
    try:
        dicom_directory = os.path.join(temp_directory, 'dicom')
        shutil.copytree(original_dicom_directory, dicom_directory)

        decompress_directory(dicom_directory)

        dicom_input = common.read_dicom_directory(dicom_directory)

        return dicom_array_to_nifti(dicom_input, output_file, reorient_nifti)

    except AttributeError as exception:
        reraise(tp=ConversionError,
                value=ConversionError(str(exception)),
                tb=sys.exc_info()[2])

    finally:
        # remove the copied data
        shutil.rmtree(temp_directory)
コード例 #45
0
    def test_single_slice(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            settings.disable_validate_slicecount()

            results = convert_generic.dicom_to_nifti(
                read_dicom_directory(test_data.GE_ANATOMICAL_SINGLE_SLICE),
                os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(
                results['NII_FILE'],
                ground_thruth_filenames(
                    test_data.GE_ANATOMICAL_SINGLE_SLICE)[0])
            self.assertTrue(
                isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

        finally:
            settings.enable_validate_slicecount()
            shutil.rmtree(tmp_output_dir)
コード例 #46
0
 def test_is_multiframe_anatomical(self):
     assert not convert_philips._is_multiframe_anatomical(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_DTI))
     assert not convert_philips._is_multiframe_anatomical(
         read_dicom_directory(test_data.PHILIPS_DTI))
     assert convert_philips._is_multiframe_anatomical(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL))
     assert not convert_philips._is_multiframe_anatomical(
         read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not convert_philips._is_multiframe_anatomical(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_FMRI))
     assert not convert_philips._is_multiframe_anatomical(
         read_dicom_directory(test_data.PHILIPS_FMRI))
コード例 #47
0
 def test_is_multiframe_diffusion_imaging(self):
     assert convert_philips._is_multiframe_diffusion_imaging(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_DTI))
     assert not convert_philips._is_multiframe_diffusion_imaging(
         read_dicom_directory(test_data.PHILIPS_DTI))
     assert not convert_philips._is_multiframe_diffusion_imaging(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL))
     assert not convert_philips._is_multiframe_diffusion_imaging(
         read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not convert_philips._is_multiframe_diffusion_imaging(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_FMRI))
     assert not convert_philips._is_multiframe_diffusion_imaging(
         read_dicom_directory(test_data.PHILIPS_FMRI))
コード例 #48
0
 def test_is_singleframe_4d(self):
     assert not convert_philips._is_singleframe_4d(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_DTI))
     assert convert_philips._is_singleframe_4d(
         read_dicom_directory(test_data.PHILIPS_DTI))
     assert not convert_philips._is_singleframe_4d(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_ANATOMICAL))
     assert not convert_philips._is_singleframe_4d(
         read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not convert_philips._is_singleframe_4d(
         read_dicom_directory(test_data.PHILIPS_ENHANCED_FMRI))
     assert convert_philips._is_singleframe_4d(
         read_dicom_directory(test_data.PHILIPS_FMRI))
コード例 #49
0
def dicom_series_to_nifti(original_dicom_directory, output_file=None, reorient_nifti=True):
    """ Converts dicom single series (see pydicom) to nifty, mimicking SPM

    Examples: See unit test


    will return a dictionary containing
    - the NIFTI under key 'NIFTI'
    - the NIFTI file path under 'NII_FILE'
    - the BVAL file path under 'BVAL_FILE' (only for dti)
    - the BVEC file path under 'BVEC_FILE' (only for dti)

    IMPORTANT:
    If no specific sequence type can be found it will default to anatomical and try to convert.
    You should check that the data you are trying to convert is supported by this code

    Inspired by http://nipy.sourceforge.net/nibabel/dicom/spm_dicom.html
    Inspired by http://code.google.com/p/pydicom/source/browse/source/dicom/contrib/pydicom_series.py

    :param reorient_nifti: if True the nifti affine and data will be updated so the data is stored LAS oriented
    :param output_file: file path to write to if not set to None
    :param original_dicom_directory: directory with the dicom files for a single series/scan
    :return nibabel image
    """
    # copy files so we can can modify without altering the original
    temp_directory = tempfile.mkdtemp()
    try:
        dicom_directory = os.path.join(temp_directory, 'dicom')
        shutil.copytree(original_dicom_directory, dicom_directory)

        dicom_input = common.read_dicom_directory(dicom_directory)

        return dicom_array_to_nifti(dicom_input, output_file, reorient_nifti)

    except AttributeError as exception:
        reraise(
            tp=ConversionError,
            value=ConversionError(str(exception)),
            tb=sys.exc_info()[2])

    finally:
        # remove the copied data
        shutil.rmtree(temp_directory)
コード例 #50
0
ファイル: test_generic.py プロジェクト: icometrix/dicom2nifti
    def test_inconsistent_slice_increment_resampling(self):
        tmp_output_dir = tempfile.mkdtemp()
        try:
            settings.disable_validate_orthogonal()
            settings.disable_validate_slice_increment()
            settings.enable_resampling()
            settings.set_resample_padding(0)
            settings.set_resample_spline_interpolation_order(1)
            results = convert_generic.dicom_to_nifti(read_dicom_directory(test_data.FAILING_SLICEINCREMENT_2),
                                                     os.path.join(tmp_output_dir, 'test.nii.gz'))
            assert_compare_nifti(results['NII_FILE'],
                                 ground_thruth_filenames(test_data.FAILING_SLICEINCREMENT_2)[0])
            self.assertTrue(isinstance(results['NII'], nibabel.nifti1.Nifti1Image))

        finally:
            settings.disable_resampling()
            settings.enable_validate_slice_increment()
            settings.enable_validate_orientation()
            shutil.rmtree(tmp_output_dir)
コード例 #51
0
ファイル: test_common.py プロジェクト: icometrix/dicom2nifti
    def test_validate_slicecount(self):
        validate_slicecount(read_dicom_directory(test_data.GE_ANATOMICAL))

        self.assertRaises(ConversionValidationError,
                          validate_slicecount,
                          read_dicom_directory(test_data.FAILING_SLICECOUNT))
コード例 #52
0
ファイル: test_siemens.py プロジェクト: icometrix/dicom2nifti
 def test_is_diffusion_imaging(self):
     assert convert_siemens._is_diffusion_imaging(read_dicom_directory(test_data.SIEMENS_DTI)[0])
     assert not convert_siemens._is_diffusion_imaging(read_dicom_directory(test_data.SIEMENS_FMRI)[0])
     assert convert_siemens._is_diffusion_imaging(read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI)[0])
     assert not convert_siemens._is_diffusion_imaging(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI)[0])
     assert not convert_siemens._is_diffusion_imaging(read_dicom_directory(test_data.SIEMENS_ANATOMICAL)[0])
コード例 #53
0
ファイル: test_common.py プロジェクト: icometrix/dicom2nifti
    def test_validate_orientation(self):
        validate_orientation(read_dicom_directory(test_data.GE_ANATOMICAL))

        self.assertRaises(ConversionValidationError,
                          validate_orientation,
                          read_dicom_directory(test_data.FAILING_ORIENTATION))
コード例 #54
0
ファイル: test_siemens.py プロジェクト: icometrix/dicom2nifti
 def test_is_4d(self):
     assert convert_siemens._is_4d(read_dicom_directory(test_data.SIEMENS_DTI))
     assert convert_siemens._is_4d(read_dicom_directory(test_data.SIEMENS_FMRI))
     assert not convert_siemens._is_4d(read_dicom_directory(test_data.SIEMENS_CLASSIC_DTI))
     assert not convert_siemens._is_4d(read_dicom_directory(test_data.SIEMENS_CLASSIC_FMRI))
     assert not convert_siemens._is_4d(read_dicom_directory(test_data.SIEMENS_ANATOMICAL))
コード例 #55
0
ファイル: test_ge.py プロジェクト: icometrix/dicom2nifti
 def test_is_ge(self):
     assert not common.is_ge(read_dicom_directory(test_data.SIEMENS_ANATOMICAL))
     assert common.is_ge(read_dicom_directory(test_data.GE_ANATOMICAL))
     assert not common.is_ge(read_dicom_directory(test_data.PHILIPS_ANATOMICAL))
     assert not common.is_ge(read_dicom_directory(test_data.GENERIC_ANATOMICAL))
     assert not common.is_ge(read_dicom_directory(test_data.HITACHI_ANATOMICAL))
コード例 #56
0
ファイル: test_common.py プロジェクト: icometrix/dicom2nifti
    def test_validate_sliceincrement(self):
        validate_slice_increment(sort_dicoms(read_dicom_directory(test_data.GE_ANATOMICAL)))

        self.assertRaises(ConversionValidationError,
                          validate_slice_increment,
                          sort_dicoms(read_dicom_directory(test_data.FAILING_SLICEINCREMENT)))
コード例 #57
0
ファイル: test_common.py プロジェクト: icometrix/dicom2nifti
    def test_validate_orthogonal(self):
        validate_orthogonal(read_dicom_directory(test_data.GE_ANATOMICAL))

        self.assertRaises(ConversionValidationError,
                          validate_orthogonal,
                          read_dicom_directory(test_data.FAILING_ORHTOGONAL))