mipcandy.data.inspection

Contents

mipcandy.data.inspection#

Module Contents#

Classes#

Functions#

API#

mipcandy.data.inspection.format_bbox(bbox: Sequence[int]) tuple[int, int, int, int] | tuple[int, int, int, int, int, int][source]#
class mipcandy.data.inspection.InspectionAnnotation[source]#

Bases: object

shape: mipcandy.types.AmbiguousShape = None#
foreground_bbox: tuple[int, int, int, int] | tuple[int, int, int, int, int, int] = None#
class_ids: tuple[int, ...] = None#
class_counts: dict[int, int] = None#
class_bboxes: dict[int, tuple[int, int, int, int] | tuple[int, int, int, int, int, int]] = None#
class_locations: dict[int, tuple[tuple[int, int] | tuple[int, int, int], ...]] = None#
spacing: mipcandy.types.Shape | None = None#
foreground_shape() mipcandy.types.Shape[source]#
center_of_foreground() tuple[int, int] | tuple[int, int, int][source]#
class mipcandy.data.inspection.InspectionAnnotations(dataset: mipcandy.data.dataset.SupervisedDataset, background: int, intensity_stats: tuple[float, float, float, float], *annotations: mipcandy.data.inspection.InspectionAnnotation)[source]#

Bases: typing.Sequence[mipcandy.data.inspection.InspectionAnnotation]

dataset() mipcandy.data.dataset.SupervisedDataset[source]#
background() int[source]#
intensity_stats() tuple[float, float, float, float][source]#
Returns:

mean, std, 0.5th percentile, 99.5th percentile

annotations() tuple[mipcandy.data.inspection.InspectionAnnotation, ...][source]#
__getitem__(item: int) mipcandy.data.inspection.InspectionAnnotation[source]#
__len__() int[source]#
save(path: str | os.PathLike[str]) None[source]#
_get_shapes(get_shape: Callable[[mipcandy.data.inspection.InspectionAnnotation], mipcandy.types.AmbiguousShape]) tuple[tuple[int, ...] | None, tuple[int, ...], tuple[int, ...]][source]#
shapes() tuple[tuple[int, ...] | None, tuple[int, ...], tuple[int, ...]][source]#
statistical_shape(*, percentile: float = 0.95) mipcandy.types.Shape[source]#
foreground_shapes() tuple[tuple[int, ...] | None, tuple[int, ...], tuple[int, ...]][source]#
statistical_foreground_shape(*, percentile: float = 0.95) mipcandy.types.Shape[source]#
crop_foreground(i: int, *, expand_ratio: float = 1) tuple[torch.Tensor, torch.Tensor][source]#
foreground_heatmap() torch.Tensor[source]#
center_of_foregrounds() tuple[int, int] | tuple[int, int, int][source]#
center_of_foregrounds_offsets() tuple[int, int] | tuple[int, int, int][source]#
set_roi_shape(roi_shape: mipcandy.types.Shape | None) None[source]#
roi_shape(*, clamp: bool = True, percentile: float = 0.95) mipcandy.types.Shape[source]#
roi(i: int, *, clamp: bool = True, percentile: float = 0.95) tuple[int, int, int, int] | tuple[int, int, int, int, int, int][source]#
crop_roi(i: int, *, clamp: bool = True, percentile: float = 0.95) tuple[torch.Tensor, torch.Tensor][source]#
mipcandy.data.inspection._lists_to_tuples(pairs: Sequence[tuple[str, Any]]) dict[str, Any][source]#
mipcandy.data.inspection._str_indices_to_int_indices(obj: dict[str, Any]) dict[int, Any][source]#
mipcandy.data.inspection.parse_inspection_annotation(obj: dict[str, Any]) mipcandy.data.inspection.InspectionAnnotation[source]#
mipcandy.data.inspection.load_inspection_annotations(path: str | os.PathLike[str], dataset: mipcandy.data.dataset.SupervisedDataset) mipcandy.data.inspection.InspectionAnnotations[source]#
mipcandy.data.inspection.bbox_from_indices(indices: torch.Tensor, num_dim: Literal[2, 3]) tuple[int, int, int, int][source]#
mipcandy.data.inspection.inspect(dataset: mipcandy.data.dataset.SupervisedDataset, *, background: int = 0, max_samples: int = 10000, console: rich.console.Console = Console()) mipcandy.data.inspection.InspectionAnnotations[source]#
class mipcandy.data.inspection.ROIDataset(annotations: mipcandy.data.inspection.InspectionAnnotations, *, clamp: bool = True, percentile: float = 0.95)[source]#

Bases: mipcandy.data.dataset.SupervisedDataset[list[int]]

construct_new(images: list[Any], labels: list[Any]) Self[source]#
abstractmethod load_image(idx: int) torch.Tensor[source]#
abstractmethod load_label(idx: int) torch.Tensor[source]#
load(idx: int) tuple[torch.Tensor, torch.Tensor][source]#
mipcandy.data.inspection.crop_and_pad(x: torch.Tensor, bbox_lbs: list[int], bbox_ubs: list[int], *, pad_value: int | float = 0) torch.Tensor[source]#
class mipcandy.data.inspection.RandomROIDataset(annotations: mipcandy.data.inspection.InspectionAnnotations, batch_size: int, *, num_patches_per_case: int = 1, oversample_rate: float = 0.33, clamp: bool = False, percentile: float = 0.5, min_factor: int = 16)[source]#

Bases: mipcandy.data.inspection.ROIDataset

convert_idx(idx: int) int[source]#
roi_shape(*, roi_shape: mipcandy.types.Shape | None = None) None | mipcandy.types.Shape[source]#
construct_new(images: list[Any], labels: list[Any]) Self[source]#
random_roi(idx: int, force_foreground: bool) tuple[list[int], list[int]][source]#
oversample_foreground(idx: int) bool[source]#
load(idx: int) tuple[torch.Tensor, torch.Tensor][source]#