Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Image

Chitradataclass

Ultimate image utility class.

  1. Load image from file, web url, numpy or bytes
  2. Plot image
  3. Draw bounding boxes

Parameters:

NameTypeDescriptionDefault
dataAny

numpy, url, filelike

required
bboxesOptional[List]None
labelsOptional[List]None
box_formatOptional[str]'XYXY'
cache[bool]

Whether to cache downloaded image

required
Source code inchitra/image/image.py
classChitra:"""Ultimate image utility class.    1. Load image from file, web url, numpy or bytes    2. Plot image    3. Draw bounding boxes    Args:        data: numpy, url, filelike        bboxes:        labels:        box_format:        cache[bool]: Whether to cache downloaded image    """data:Anybboxes:Optional[BoundingBoxes]=Nonelabels:Optional[List]=Nonedef__init__(self,data:Any,bboxes:Optional[List]=None,labels:Optional[List]=None,box_format:Optional[str]=BoundingBoxes.CORNER,cache:bool=False,)->None:self.image=self._load_image(data,cache=cache)self.bboxes=BoundingBoxes(bboxes,labels,box_format=box_format)@staticmethoddef_load_image(data:DATA_FORMATS,cache:bool):ifisinstance(data,Image.Image):returndataifisinstance(data,bytes):returnImage.open(io.BytesIO(data))ifisinstance(data,str):ifdata.startswith("http"):image=_url_to_image(data,cache)else:image=Image.open(data)elifisinstance(data,np.ndarray):image=Image.fromarray(data)else:raiseUserWarning("unable to load image!")returnimagedefnumpy(self):returnnp.asarray(self.image)@propertydefshape(self):returnself.numpy().shape@propertydefsize(self):returnself.image.sizedefimshow(self,cmap=plt.cm.Blues,**kwargs):plt.imshow(self.numpy(),cmap,**kwargs)defdraw_boxes(self,marker_size:int=2,color=(0,255,0),):ifself.bboxesisNone:raiseUserWarning("bboxes is None")bbox_on_image=self.bboxes.get_bounding_boxes_on_image(self.shape)returnbbox_on_image.draw_on_image(self.numpy()[...,:3],color=color,size=marker_size)defresize(self,*args,**kwargs)->Image.Image:"""        Calls PIL.Image.resize method and passes the arguments        Args:            *args:            **kwargs:        Returns:            resized PIL.Image        """self.image=self.image.resize(*args,**kwargs)returnself.imagedefresize_image_with_bbox(self,size:List[int]):"""Resize both image and the bounding boxes"""old_size=self.shapeself.image=self.image.resize(size)self.bboxes.resize_with_image(old_size,self.numpy())returnself.image,self.bboxes

resize(self,*args,**kwargs)

Calls PIL.Image.resize method and passes the arguments

Parameters:

NameTypeDescriptionDefault
*args()
**kwargs{}

Returns:

TypeDescription
Image

resized PIL.Image

Source code inchitra/image/image.py
defresize(self,*args,**kwargs)->Image.Image:"""    Calls PIL.Image.resize method and passes the arguments    Args:        *args:        **kwargs:    Returns:        resized PIL.Image    """self.image=self.image.resize(*args,**kwargs)returnself.image

resize_image_with_bbox(self,size)

Resize both image and the bounding boxes

Source code inchitra/image/image.py
defresize_image_with_bbox(self,size:List[int]):"""Resize both image and the bounding boxes"""old_size=self.shapeself.image=self.image.resize(size)self.bboxes.resize_with_image(old_size,self.numpy())returnself.image,self.bboxes

Last update:December 5, 2021

[8]ページ先頭

©2009-2025 Movatter.jp