Create a Nibabel object from ``self.create_backend_obj(self.obj, ...)`` and call ``nib.save``. Args: filename: filename or PathLike object. verbose: if ``True``, log the progress. obj_kwargs: keyword arguments passed to ``self.create_backend_obj`
(self, filename: PathLike, verbose: bool = False, **obj_kwargs)
| 613 | ) |
| 614 | |
| 615 | def write(self, filename: PathLike, verbose: bool = False, **obj_kwargs): |
| 616 | """ |
| 617 | Create a Nibabel object from ``self.create_backend_obj(self.obj, ...)`` and call ``nib.save``. |
| 618 | |
| 619 | Args: |
| 620 | filename: filename or PathLike object. |
| 621 | verbose: if ``True``, log the progress. |
| 622 | obj_kwargs: keyword arguments passed to ``self.create_backend_obj``, |
| 623 | |
| 624 | See also: |
| 625 | |
| 626 | - https://nipy.org/nibabel/reference/nibabel.nifti1.html#nibabel.nifti1.save |
| 627 | """ |
| 628 | super().write(filename, verbose=verbose) |
| 629 | self.data_obj = self.create_backend_obj( |
| 630 | cast(NdarrayOrTensor, self.data_obj), affine=self.affine, dtype=self.output_dtype, **obj_kwargs |
| 631 | ) |
| 632 | if self.affine is None: |
| 633 | self.affine = np.eye(4) |
| 634 | # ITK v5.2.1/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx#L2175-L2176 |
| 635 | _affine = to_affine_nd(r=3, affine=convert_data_type(self.affine, np.ndarray)[0]) |
| 636 | self.data_obj.set_sform(_affine, code=1) |
| 637 | self.data_obj.set_qform(_affine, code=1) |
| 638 | nib.save(self.data_obj, filename) |
| 639 | |
| 640 | @classmethod |
| 641 | def create_backend_obj( |