|
42 | 42 | from ..utils.py_utils import asdict, first_non_null_value, zip_dict |
43 | 43 | from .audio import Audio |
44 | 44 | from .image import Image, encode_pil_image |
45 | | -from .nifti import Nifti |
| 45 | +from .nifti import Nifti, encode_nibabel_image |
46 | 46 | from .pdf import Pdf, encode_pdfplumber_pdf |
47 | 47 | from .translation import Translation, TranslationVariableLanguages |
48 | 48 | from .video import Video |
@@ -307,6 +307,9 @@ def _cast_to_python_objects(obj: Any, only_1d_for_numpy: bool, optimize_list_cas |
307 | 307 | if config.PDFPLUMBER_AVAILABLE and "pdfplumber" in sys.modules: |
308 | 308 | import pdfplumber |
309 | 309 |
|
| 310 | + if config.NIBABEL_AVAILABLE and "nibabel" in sys.modules: |
| 311 | + import nibabel as nib |
| 312 | + |
310 | 313 | if config.TORCHCODEC_AVAILABLE and "torchcodec" in sys.modules: |
311 | 314 | from torchcodec.decoders import AudioDecoder, VideoDecoder |
312 | 315 |
|
@@ -380,6 +383,8 @@ def _cast_to_python_objects(obj: Any, only_1d_for_numpy: bool, optimize_list_cas |
380 | 383 | return encode_pil_image(obj), True |
381 | 384 | elif config.PDFPLUMBER_AVAILABLE and "pdfplumber" in sys.modules and isinstance(obj, pdfplumber.pdf.PDF): |
382 | 385 | return encode_pdfplumber_pdf(obj), True |
| 386 | + elif config.NIBABEL_AVAILABLE and "nibabel" in sys.modules and isinstance(obj, nib.analyze.AnalyzeImage): |
| 387 | + return encode_nibabel_image(obj, force_bytes=True), True |
383 | 388 | elif isinstance(obj, pd.Series): |
384 | 389 | return ( |
385 | 390 | _cast_to_python_objects( |
|
0 commit comments