@@ -789,12 +789,15 @@ def dict_from_image(image: "itkt.Image") -> Dict:
789789
790790 pixel_arr = itk .array_from_image (image )
791791 imageType = wasm_type_from_image_type (image )
792+ buffered_region = image .GetBufferedRegion ()
793+ bufferedRegion = { "index" : tuple (buffered_region .GetIndex ()), "size" : tuple (buffered_region .GetSize ())}
792794 return dict (
793795 imageType = imageType ,
794796 name = image .GetObjectName (),
795797 origin = tuple (image .GetOrigin ()),
796798 spacing = tuple (image .GetSpacing ()),
797- size = tuple (image .GetBufferedRegion ().GetSize ()),
799+ size = tuple (image .GetLargestPossibleRegion ().GetSize ()),
800+ bufferedRegion = bufferedRegion ,
798801 direction = np .asarray (image .GetDirection ()),
799802 data = pixel_arr ,
800803 )
@@ -808,10 +811,20 @@ def image_from_dict(image_dict: Dict) -> "itkt.Image":
808811 if image_dict ["data" ] is None :
809812 image = ImageType .New ()
810813 image .SetRegions (image_dict ["size" ])
814+ if "bufferedRegion" in image_dict :
815+ buffered_region = itk .ImageRegion [image .GetImageDimension ()]()
816+ buffered_region .SetIndex (image_dict ["bufferedRegion" ]["index" ])
817+ buffered_region .SetSize (image_dict ["bufferedRegion" ]["size" ])
818+ image .SetBufferedRegion (buffered_region )
811819 image .Allocate (True )
812820 else :
813821 image = itk .PyBuffer [ImageType ].GetImageViewFromArray (image_dict ["data" ])
814822 image .SetRegions (image_dict ["size" ])
823+ if "bufferedRegion" in image_dict :
824+ buffered_region = itk .ImageRegion [image .GetImageDimension ()]()
825+ buffered_region .SetIndex (image_dict ["bufferedRegion" ]["index" ])
826+ buffered_region .SetSize (image_dict ["bufferedRegion" ]["size" ])
827+ image .SetBufferedRegion (buffered_region )
815828 image .SetOrigin (image_dict ["origin" ])
816829 image .SetSpacing (image_dict ["spacing" ])
817830 image .SetDirection (image_dict ["direction" ])
0 commit comments