Coretex
coretex.entities.sample.image_sample.image_sample.ImageSample Class Reference
Inheritance diagram for coretex.entities.sample.image_sample.image_sample.ImageSample:
coretex.entities.sample.network_sample.NetworkSample coretex.entities.sample.image_sample.image_sample_data.AnnotatedImageSampleData coretex.entities.sample.image_sample.local_image_sample.LocalImageSample coretex.entities.sample.sample.Sample coretex.entities.sample.local_sample.LocalSample coretex.entities.sample.image_sample.image_sample_data.AnnotatedImageSampleData coretex.entities.sample.sample.Sample

Public Member Functions

bool saveAnnotation (self, CoretexImageAnnotation coretexAnnotation)
 
None saveMetadata (self, Dict[str, Any] metadata)
 
- Public Member Functions inherited from coretex.entities.sample.network_sample.NetworkSample
Path path (self)
 
Path zipPath (self)
 
Path downloadPath (self)
 
bool modifiedSinceLastDownload (self)
 
None decrypt (self, bool ignoreCache=False)
 
None download (self, bool decrypt=True, bool ignoreCache=False)
 
None unzip (self, bool ignoreCache=False)
 
- Public Member Functions inherited from coretex.entities.sample.sample.Sample
Path joinPath (self, Union[Path, str] other)
 
- Public Member Functions inherited from coretex.entities.sample.image_sample.image_sample_data.AnnotatedImageSampleData
np.ndarray extractSegmentationMask (self, ImageDatasetClasses classes)
 
- Public Member Functions inherited from coretex.entities.sample.image_sample.local_image_sample.LocalImageSample
AnnotatedImageSampleData load (self)
 
Dict[str, Any] loadMetadata (self)
 
- Public Member Functions inherited from coretex.entities.sample.local_sample.LocalSample
Path path (self)
 
Path zipPath (self)
 
None download (self, bool decrypt=True, bool ignoreCache=False)
 

Detailed Description

    Represents the generic image sample\n
    Contains basic properties and functionality for all image sample classes\n
    The class has several methods that allow users to access and
    manipulate image data and annotations, as well as to create new image samples

Definition at line 27 of file image_sample.py.

Member Function Documentation

◆ saveAnnotation()

bool coretex.entities.sample.image_sample.image_sample.ImageSample.saveAnnotation (   self,
CoretexImageAnnotation  coretexAnnotation 
)
    Updates annotation for the image

    Returns
    -------
    bool -> returns True if successful, False otherwise

Reimplemented from coretex.entities.sample.image_sample.local_image_sample.LocalImageSample.

Definition at line 39 of file image_sample.py.

39  def saveAnnotation(self, coretexAnnotation: CoretexImageAnnotation) -> bool:
40  # Encrypted sample must be downloaded for annotation to be updated
41  if self.isEncrypted:
42  self.download(decrypt = True)
43 
44  # Only save annotation locally if it is downloaded
45  if self.zipPath.exists():
46  self.unzip()
47 
48  super().saveAnnotation(coretexAnnotation)
49 
50  if self.isEncrypted:
51  try:
52  self._overwriteSample(self.zipPath)
53  return True
54  except NetworkRequestError:
55  return False
56  else:
57  parameters = {
58  "id": self.id,
59  "data": coretexAnnotation.encode()
60  }
61 
62  response = networkManager.post("session/save-annotations", parameters)
63  return not response.hasFailed()
64 

◆ saveMetadata()

None coretex.entities.sample.image_sample.image_sample.ImageSample.saveMetadata (   self,
Dict[str, Any]  metadata 
)
    Saves a json object as metadata for the sample

    Parameters
    ----------
    metadata : dict[str, Any]
        Json object containing sample metadata

Reimplemented from coretex.entities.sample.image_sample.local_image_sample.LocalImageSample.

Definition at line 65 of file image_sample.py.

65  def saveMetadata(self, metadata: Dict[str, Any]) -> None:
66  # Encrypted sample must be downloaded for metadata to be updated
67  if self.isEncrypted:
68  self.download(decrypt = True)
69 
70  # Only save metadata locally if it is downloaded
71  if self.zipPath.exists():
72  self.unzip()
73 
74  super().saveMetadata(metadata)
75 
76  if self.isEncrypted:
77  self._overwriteSample(self.zipPath)
78  else:
79  parameters = {
80  "id": self.id,
81  "data": metadata
82  }
83 
84  response = networkManager.post("session/save-metadata", parameters)
85  if response.hasFailed():
86  raise NetworkRequestError(response, f"Failed to upload metadata for sample \"{self.name}\"")

The documentation for this class was generated from the following file: