Crops
Transforms
- class BBoxSafeRandomCrop(erosion_rate: float = 0.0, always_apply=False, p=1.0)[source]
Bases:
DualTransform
Crop a random part of the input without loss of bboxes.
- Parameters:
erosion_rate (float) – erosion rate applied on input image height before crop.
always_apply (bool) – whether to always apply the transformation. Default: False.
p (float) – probability of applying the transform. Default: 1.
- Targets:
image, mask, bboxes
- Image types:
uint8, float32
- apply(img: ndarray, crop_height: int = 0, crop_width: int = 0, crop_depth: int = 0, h_start: int = 0, w_start: int = 0, d_start: int = 0, **params) ndarray [source]
Applies the transformation to the image
- apply_to_bbox(bbox: Tuple[float, float, float, float], crop_height: int = 0, crop_width: int = 0, crop_depth: int = 0, h_start: int = 0, w_start: int = 0, d_start: int = 0, rows: int = 0, cols: int = 0, slices: int = 0, **params) Tuple[float, float, float, float] [source]
Applies the transformation to a bbox
- get_params_dependent_on_targets(params: Dict[str, Any]) Dict[str, Any] [source]
Returns additional parameters needed for the apply methods that depend on a target (e.g. apply_to_bboxes method expects image size)
- get_transform_init_args_names() Tuple[str, ...] [source]
Returns initialization argument names. (e.g. Transform(arg1 = 1, arg2 = 2) -> (‘arg1’, ‘arg2’))
- property targets_as_params: List[str]
Returns a list of target names (e.g. ‘image’) that are needed as a parameter input to other apply methods (e.g. apply_to_bboxes(…, image = image))
- class CenterCrop(height: int, width: int, depth: int, always_apply=False, p=1.0)[source]
Bases:
DualTransform
Crop the central part of the input.
- Parameters:
height (int) – height of the crop.
width (int) – width of the crop.
depth (int) – depth of the crop.
always_apply (bool) – whether to always apply the transformation. Default: False
p (float) – probability of applying the transform. Default: 1.
- Targets:
image, mask, bboxes, keypoints
- Image types:
uint8, uint16, int16, int32, float32
- apply_to_bbox(bbox: Tuple[float, float, float, float], **params) Tuple[float, float, float, float] [source]
Applies the transformation to a bbox
- class Crop(x_min: int = 0, y_min: int = 0, z_min: int = 0, x_max: int = 1024, y_max: int = 1024, z_max: int = 1024, always_apply=False, p=1.0)[source]
Bases:
DualTransform
Crop region from image.
- Parameters:
x_min (int) – Minimum closest upper left x coordinate.
y_min (int) – Minimum closest upper left y coordinate.
z_min (int) – Minimum closest upper left z coordinate.
x_max (int) – Maximum furthest lower right x coordinate.
y_max (int) – Maximum furthest lower right y coordinate.
z_max (int) – Maximum furthest lower right z coordinate.
always_apply (bool) – whether to always apply the transformation. Default: False
p (float) – probability of applying the transform. Default: 1.
- Targets:
image, mask, bboxes, keypoints
- Image types:
uint8, uint16, int16, int32, float32
- apply_to_bbox(bbox: Tuple[float, float, float, float], **params) Tuple[float, float, float, float] [source]
Applies the transformation to a bbox
- class CropAndPad(px: int | Sequence[float] | Sequence[Tuple] | None = None, percent: float | Sequence[float] | Sequence[Tuple] | None = None, pad_mode: str = 'constant', pad_cval: float | Sequence[float] = 0, pad_cval_mask: float | Sequence[float] = 0, keep_size: bool = True, sample_independently: bool = True, interpolation: int = 1, always_apply: bool = False, p: float = 1.0)[source]
Bases:
DualTransform
Crop and pad images by pixel amounts or fractions of image sizes. Cropping removes pixels at the sides (i.e. extracts a subimage from a given full image). Padding adds pixels to the sides (e.g. black pixels). This transformation will never crop images below a height or width of
1
.Note
This transformation automatically resizes images back to their original size. To deactivate this, add the parameter
keep_size=False
.- Parameters:
px (int or tuple) –
- The number of pixels to crop (negative values) or pad (positive values) on each side of the image. Either this or the parameter percent may be set, not both at the same time.
If
None
, then pixel-based cropping/padding will not be used.If
int
, then that exact number of pixels will always be cropped/padded.If a
tuple
of twoint
s with valuesa
andb
, then each side will be cropped/padded by a random amount sampled uniformly per image and side from the interval[a, b]
. If however sample_independently is set toFalse
, only one value will be sampled per image and used for all sides.If a
tuple
of six entries, then the entries represent top, bottom, left, right, close, far. Each entry may be a singleint
(always crop/pad by exactly that value), atuple
of twoint
sa
andb
(crop/pad by an amount within[a, b]
), alist
ofint
s (crop/pad by a random value that is contained in thelist
).
percent (float or tuple) –
- The number of pixels to crop (negative values) or pad (positive values) on each side of the image given as a fraction of the image height/width. E.g. if this is set to
-0.1
, the transformation will always crop away10%
of the image’s height at both the top and the bottom (both10%
each), as well as10%
of the width at the right and left. Expected value range is(-1.0, inf)
. Either this or the parameter px may be set, not both at the same time: If
None
, then fraction-based cropping/padding will not be usedIf
float
, then that fraction will always be cropped/paddedIf a
tuple
of twofloat
s with valuesa
andb
, then each side will be cropped/padded by a random fraction sampled uniformly per image and side from the interval[a, b]
. If however sample_independently is set toFalse
, only one value will be sampled per image and used for all sides.If a
tuple
of six entries, then the entries represent top, bottom, left, right, close, far. Each entry may be a singlefloat
(always crop/pad by exactly that percent value), atuple
of twofloat
sa
andb
(crop/pad by a fraction from[a, b]
), alist
offloat
s (crop/pad by a random value that is contained in the list).
- The number of pixels to crop (negative values) or pad (positive values) on each side of the image given as a fraction of the image height/width. E.g. if this is set to
pad_mode (str) – scipy parameter to determine how the input image is extended during convolution to maintain image shape. Must be one of the following: - reflect (d c b a | a b c d | d c b a): The input is extended by reflecting about the edge of the last pixel. This mode is also sometimes referred to as half-sample symmetric. - constant (k k k k | a b c d | k k k k): The input is extended by filling all values beyond the edge with the same constant value, defined by the cval parameter. - nearest (a a a a | a b c d | d d d d): The input is extended by replicating the last pixel. - mirror (d c b | a b c d | c b a): The input is extended by reflecting about the center of the last pixel. This mode is also sometimes referred to as whole-sample symmetric. - wrap (a b c d | a b c d | a b c d): The input is extended by wrapping around to the opposite edge. Reference: https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.median_filter.html Default: constant
pad_cval (number, Sequence[number]) –
- The constant value to use if pad_mode is
constant
. If
number
, then that value will be used.If a
tuple
of twonumber
s and at least one of them is afloat
, then a random number will be uniformly sampled per image from the continuous interval[a, b]
and used as the value. If bothnumber
s areint
s, the interval is discrete.If a
list
ofnumber
, then a random value will be chosen from the elements of thelist
and used as the value.
- The constant value to use if pad_mode is
pad_cval_mask (number, Sequence[number]) – Same as pad_cval but only for masks.
keep_size (bool) – After cropping and padding, the result image will usually have a different height/width compared to the original input image. If this parameter is set to
True
, then the cropped/padded image will be resized to the input image’s size, i.e. the output shape is always identical to the input shape.sample_independently (bool) – If
False
and the values for px/percent result in exactly one probability distribution for all image sides, only one single value will be sampled from that probability distribution and used for all sides. I.e. the crop/pad amount then is the same for all sides. IfTrue
, four values will be sampled independently, one per side.interpolation (int) – scipy interpolation method (e.g. dicaugment.INTER_NEAREST) Default: dicaugment.INTER_LINEAR.
always_apply (bool) – whether to always apply the transformation. Default: False
p (float) – probability of applying the transform. Default: 1.0.
- Targets:
image, mask, bboxes, keypoints
- Image types:
any
- apply(img: ndarray, crop_params: Sequence[int] = (), pad_params: Sequence[int] = (), pad_value: int | float = 0, rows: int = 0, cols: int = 0, slices: int = 0, interpolation: int = 1, **params) ndarray [source]
Applies the transformation to the image
- apply_to_bbox(bbox: Tuple[float, float, float, float], crop_params: Sequence[int] | None = None, pad_params: Sequence[int] | None = None, rows: int = 0, cols: int = 0, slices: int = 0, result_rows: int = 0, result_cols: int = 0, result_slices: int = 0, **params) Tuple[float, float, float, float] [source]
Applies the transformation to a bbox
- apply_to_keypoint(keypoint: Tuple[float, float, float, float], crop_params: Sequence[int] | None = None, pad_params: Sequence[int] | None = None, rows: int = 0, cols: int = 0, slices: int = 0, result_rows: int = 0, result_cols: int = 0, result_slices: int = 0, **params) Tuple[float, float, float, float] [source]
Applies the transformation to a keypoint
- apply_to_mask(img: ndarray, crop_params: Sequence[int] | None = None, pad_params: Sequence[int] | None = None, pad_value_mask: float | None = None, rows: int = 0, cols: int = 0, slices: int = 0, interpolation: int = 0, **params) ndarray [source]
Applies the transformation to a mask
- get_params_dependent_on_targets(params) dict [source]
Returns additional parameters needed for the apply methods that depend on a target (e.g. apply_to_bboxes method expects image size)
- get_transform_init_args_names() Tuple[str, ...] [source]
Returns initialization argument names. (e.g. Transform(arg1 = 1, arg2 = 2) -> (‘arg1’, ‘arg2’))
- property targets_as_params: List[str]
Returns a list of target names (e.g. ‘image’) that are needed as a parameter input to other apply methods (e.g. apply_to_bboxes(…, image = image))
- class RandomCrop(height: int, width: int, depth: int, always_apply=False, p=1.0)[source]
Bases:
DualTransform
Crop a random part of the input.
- Parameters:
height (int) – height of the crop.
width (int) – width of the crop.
depth (int) – depth of the crop.
always_apply (bool) – whether to always apply the transformation. Default: False
p (float) – probability of applying the transform. Default: 1.
- Targets:
image, mask, bboxes, keypoints
- Image types:
uint8, uint16, int16, int32, float32
- apply(img: ndarray, h_start: int = 0, w_start: int = 0, d_start: int = 0, **params) ndarray [source]
Applies the transformation to the image
- apply_to_bbox(bbox: Tuple[float, float, float, float], **params) Tuple[float, float, float, float] [source]
Applies the transformation to a bbox
- class RandomCropFromBorders(crop_left: float = 0.1, crop_right: float = 0.1, crop_top: float = 0.1, crop_bottom: float = 0.1, crop_close: float = 0.1, crop_far: float = 0.1, always_apply=False, p=1.0)[source]
Bases:
DualTransform
Crop bbox from image randomly cut parts from borders without resize at the end
- Parameters:
crop_left (float) – single float value in (0.0, 1.0) range. Default 0.1. Image will be randomly cut from left side in range [0, crop_left * width)
crop_right (float) – single float value in (0.0, 1.0) range. Default 0.1. Image will be randomly cut from right side in range [(1 - crop_right) * width, width)
crop_top (float) – single float value in (0.0, 1.0) range. Default 0.1. Image will be randomly cut from top side in range [0, crop_top * height)
crop_bottom (float) – single float value in (0.0, 1.0) range. Default 0.1. Image will be randomly cut from bottom side in range [(1 - crop_bottom) * height, height)
crop_close (float) – single float value in (0.0, 1.0) range. Default 0.1. Image will be randomly cut from close side in range [0, crop_close * depth)
crop_far (float) – single float value in (0.0, 1.0) range. Default 0.1. Image will be randomly cut from far side in range [(1 - crop_far) * depth, depth)
always_apply (bool) – whether to always apply the transformation. Default: False
p (float) – probability of applying the transform. Default: 1.
- Targets:
image, mask, bboxes, keypoints
- Image types:
uint8, float32
- apply(img: ndarray, x_min: int = 0, x_max: int = 0, y_min: int = 0, y_max: int = 0, z_min: int = 0, z_max: int = 0, **params) ndarray [source]
Applies the transformation to the image
- apply_to_bbox(bbox: Tuple[float, float, float, float], x_min: int = 0, x_max: int = 0, y_min: int = 0, y_max: int = 0, z_min: int = 0, z_max: int = 0, **params) Tuple[float, float, float, float] [source]
Applies the transformation to a bbox
- apply_to_keypoint(keypoint: Tuple[float, float, float, float], x_min: int = 0, x_max: int = 0, y_min: int = 0, y_max: int = 0, z_min: int = 0, z_max: int = 0, **params) Tuple[float, float, float, float] [source]
Applies the transformation to a keypoint
- apply_to_mask(mask: ndarray, x_min: int = 0, x_max: int = 0, y_min: int = 0, y_max: int = 0, z_min: int = 0, z_max: int = 0, **params) ndarray [source]
Applies the transformation to a mask
- get_params_dependent_on_targets(params: Dict[str, Any]) Dict[str, Any] [source]
Returns additional parameters needed for the apply methods that depend on a target (e.g. apply_to_bboxes method expects image size)
- get_transform_init_args_names() Tuple[str, ...] [source]
Returns initialization argument names. (e.g. Transform(arg1 = 1, arg2 = 2) -> (‘arg1’, ‘arg2’))
- property targets_as_params: List[str]
Returns a list of target names (e.g. ‘image’) that are needed as a parameter input to other apply methods (e.g. apply_to_bboxes(…, image = image))
- class RandomCropNearBBox(max_part_shift: float | Tuple[float, float, float] = (0.3, 0.3, 0.3), cropping_box_key: str = 'cropping_bbox', always_apply: bool = False, p: float = 1.0)[source]
Bases:
DualTransform
Crop bbox from image with random shift by x,y,z coordinates
- Parameters:
max_part_shift (float, (float, float, float)) – Max shift in height, width, and depth dimensions relative to cropping_bbox dimension. If max_part_shift is a single float, the range will be (max_part_shift, max_part_shift, max_part_shift). Default (0.3, 0.3, 0.3).
cropping_box_key (str) – Additional target key for cropping box. Default cropping_bbox
always_apply (bool) – whether to always apply the transformation. Default: False
p (float) – probability of applying the transform. Default: 1.
- Targets:
image, mask, bboxes, keypoints
- Image types:
uint8, float32
Examples
>>> aug = Compose([RandomCropNearBBox(max_part_shift=(0.1, 0.5), cropping_box_key='test_box')], >>> bbox_params=BboxParams("pascal_voc")) >>> result = aug(image=image, bboxes=bboxes, test_box=[0, 5, 10, 20])
- apply(img: ndarray, x_min: int = 0, y_min: int = 0, z_min: int = 0, x_max: int = 0, y_max: int = 0, z_max: int = 0, **params) ndarray [source]
Applies the transformation to the image
- apply_to_bbox(bbox: Tuple[float, float, float, float], **params) Tuple[float, float, float, float] [source]
Applies the transformation to a bbox
- apply_to_keypoint(keypoint: Tuple[float, float, float, float], x_min: int = 0, y_min: int = 0, z_min: int = 0, x_max: int = 0, y_max: int = 0, z_max: int = 0, **params) Tuple[float, float, float, float] [source]
Applies the transformation to a keypoint
- get_params_dependent_on_targets(params: Dict[str, Any]) Dict[str, int] [source]
Returns additional parameters needed for the apply methods that depend on a target (e.g. apply_to_bboxes method expects image size)
- get_transform_init_args_names() Tuple[str, ...] [source]
Returns initialization argument names. (e.g. Transform(arg1 = 1, arg2 = 2) -> (‘arg1’, ‘arg2’))
- property targets_as_params: List[str]
Returns a list of target names (e.g. ‘image’) that are needed as a parameter input to other apply methods (e.g. apply_to_bboxes(…, image = image))
- class RandomSizedBBoxSafeCrop(height: int, width: int, depth: int, erosion_rate: float = 0.0, interpolation: int = 1, always_apply=False, p=1.0)[source]
Bases:
BBoxSafeRandomCrop
Crop a random part of the input and rescale it to some size without loss of bboxes.
- Parameters:
height (int) – height after crop and resize.
width (int) – width after crop and resize.
depth (int) – depth after crop and resize.
erosion_rate (float) – erosion rate applied on input image height before crop.
interpolation (int) – scipy interpolation method (e.g. dicaugment.INTER_NEAREST) Default: dicaugment.INTER_LINEAR.
always_apply (bool) – whether to always apply the transformation. Default: False
p (float) – probability of applying the transform. Default: 1.
- Targets:
image, mask, bboxes
- Image types:
uint8, float32
- class RandomSizedCrop(min_max_height: Tuple[int, int], height: int, width: int, depth: int, w2h_ratio: float = 1.0, d2h_ratio: float = 1.0, interpolation: int = 1, always_apply=False, p=1.0)[source]
Bases:
_BaseRandomSizedCrop
Crop a random part of the input and rescale it to some size.
- Parameters:
min_max_height ((int, int)) – crop size limits.
height (int) – height after crop and resize.
width (int) – width after crop and resize.
depth (int) – depth after crop and resize.
w2h_ratio (float) – width aspect ratio of crop.
d2h_ratio (float) – depth aspect ratio of crop.
interpolation (int) – scipy interpolation method (e.g. dicaugment.INTER_NEAREST) Default: dicaugment.INTER_LINEAR.
always_apply (bool) – whether to always apply the transformation. Default: False
p (float) – probability of applying the transform. Default: 1.
- Targets:
image, mask, bboxes, keypoints
- Image types:
uint8, uint16, int16, float32
Functional
- bbox_center_crop(bbox: Tuple[float, float, float, float], crop_height: int, crop_width: int, crop_depth: int, rows: int, cols: int, slices: int)[source]
Crop a bounding box around the center of the image
- Parameters:
bbox (tuple) – A cropped box (x_min, y_min, z_min, x_max, y_max, z_max).
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
rows (int) – Image rows.
cols (int) – Image cols.
slices (int) – Image slices.
- Returns:
A cropped bounding box (x_min, y_min, x_max, y_max, z_min, z_max).
- bbox_crop(bbox: Tuple[float, float, float, float], x_min: int, y_min: int, z_min: int, x_max: int, y_max: int, z_max: int, rows: int, cols: int, slices: int)[source]
Crop a bounding box.
- Parameters:
bbox (tuple) – A bounding box (x_min, y_min, z_min, x_max, y_max, z_max).
x_min (int) – Minimum closest upper left x coordinate.
y_min (int) – Minimum closest upper left y coordinate.
z_min (int) – Minimum closest upper left z coordinate.
x_max (int) – Maximum furthest lower right x coordinate.
y_max (int) – Maximum furthest lower right y coordinate.
z_max (int) – Maximum furthest lower right z coordinate.
rows (int) – Image width.
cols (int) – Image height.
slices (int) – Image depth.
- Returns:
A cropped bounding box (x_min, y_min, z_min, x_max, y_max, z_max).
- Return type:
tuple
- bbox_random_crop(bbox: Tuple[float, float, float, float], crop_height: int, crop_width: int, crop_depth: int, h_start: float, w_start: float, d_start: float, rows: int, cols: int, slices: int)[source]
Crop a bounding box using the crop dimensions and starting locations.
- Parameters:
bbox (tuple) – A cropped box (x_min, y_min, z_min, x_max, y_max, z_max).
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
h_start (float) – Crop height start.
w_start (float) – Crop width start.
d_start (float) – Crop depth start.
rows (int) – Image rows.
cols (int) – Image cols.
slices (int) – Image slices.
- Returns:
A cropped bounding box (x_min, y_min, x_max, y_max, z_min, z_max).
- center_crop(img: ndarray, crop_height: int, crop_width: int, crop_depth: int)[source]
Crops an image around the center.
- Parameters:
img (np.ndarray) – an image
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
- Returns:
A center cropped image
- clamping_crop(img: ndarray, x_min: int, y_min: int, z_min: int, x_max: int, y_max: int, z_max: int)[source]
Crop an image, with safeguard that clips cropping coordinates to fit within image
- Parameters:
img (np.ndarray) – An image
x_min (int) – Minimum closest upper left x coordinate.
y_min (int) – Minimum closest upper left y coordinate.
z_min (int) – Minimum closest upper left z coordinate.
x_max (int) – Maximum furthest lower right x coordinate.
y_max (int) – Maximum furthest lower right y coordinate.
z_max (int) – Maximum furthest lower right z coordinate.
- Returns:
A cropped image
- crop(img: ndarray, x_min: int, y_min: int, z_min: int, x_max: int, y_max: int, z_max: int)[source]
Crop an image.
- Parameters:
img (np.ndarray) – An image
x_min (int) – Minimum closest upper left x coordinate.
y_min (int) – Minimum closest upper left y coordinate.
z_min (int) – Minimum closest upper left z coordinate.
x_max (int) – Maximum furthest lower right x coordinate.
y_max (int) – Maximum furthest lower right y coordinate.
z_max (int) – Maximum furthest lower right z coordinate.
- Returns:
A cropped image
- Return type:
np.ndarray
- crop_and_pad(img: ndarray, crop_params: Sequence[int] | None, pad_params: Sequence[int] | None, pad_value: float | None, rows: int, cols: int, slices: int, interpolation: int, pad_mode: int, keep_size: bool) ndarray [source]
Performs cropping and padding operations on an image
- Parameters:
img (np.ndarray) – an image.
crop_params (Sequence of ints) – Cropping coodinates (x1, y1, z1, x2, y2, z2)
pad_params (Sequence of ints) – Padding parameters (top, bottom, left, right, close, far)
pad_value (float) – The constant value to use if pad_mode is constant
rows (int) – Image width.
cols (int) – Image height.
slices (int) – Image depth.
interpolation – scipy interpolation method (e.g. dicaugment.INTER_NEAREST).
pad_mode (str) – scipy parameter to determine how the input image is extended during convolution to maintain image shape. Must be one of the following: - reflect (d c b a | a b c d | d c b a): The input is extended by reflecting about the edge of the last pixel. This mode is also sometimes referred to as half-sample symmetric. - constant (k k k k | a b c d | k k k k): The input is extended by filling all values beyond the edge with the same constant value, defined by the cval parameter. - nearest (a a a a | a b c d | d d d d): The input is extended by replicating the last pixel. - mirror (d c b | a b c d | c b a): The input is extended by reflecting about the center of the last pixel. This mode is also sometimes referred to as whole-sample symmetric. - wrap (a b c d | a b c d | a b c d): The input is extended by wrapping around to the opposite edge. Reference: https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.median_filter.html Default: constant
keep_size (bool) – After cropping and padding, the result image will usually have a different height/width compared to the original input image. If this parameter is set to
True
, then the cropped/padded image will be resized to the input image’s size, i.e. the output shape is always identical to the input shape.
- crop_and_pad_bbox(bbox: Tuple[float, float, float, float], crop_params: Sequence[int] | None, pad_params: Sequence[int] | None, rows, cols, slices, result_rows, result_cols, result_slices) Tuple[float, float, float, float] [source]
Performs cropping and padding operations on a bbox
- Parameters:
bbox (BoxInternalType) – a bounding box (x_min, y_min, x_max, y_max, z_min, z_max).
crop_params (Sequence of ints) – Cropping coodinates (x1, y1, z1, x2, y2, z2)
pad_params (Sequence of ints) – Padding parameters (top, bottom, left, right, close, far)
rows (int) – Image width.
cols (int) – Image height.
slices (int) – Image depth.
result_rows (int) – Expected image width after transform.
result_cols (int) – Expected image height after transform.
result_slices (int) – Expected image depth after transform.
- Returns:
A bounding box (x_min, y_min, x_max, y_max, z_min, z_max).
- crop_and_pad_keypoint(keypoint: Tuple[float, float, float, float], crop_params: Sequence[int] | None, pad_params: Sequence[int] | None, rows: int, cols: int, slices: int, result_rows: int, result_cols: int, result_slices: int, keep_size: bool) Tuple[float, float, float, float] [source]
Performs cropping and padding operations on a keypoint
- Parameters:
KeypointInternalType) (keypoint) – A keypoint (x, y, z, angle, scale).
crop_params (Sequence of ints) – Cropping coodinates (x1, y1, z1, x2, y2, z2)
pad_params (Sequence of ints) – Padding parameters (top, bottom, left, right, close, far)
rows (int) – Image width.
cols (int) – Image height.
slices (int) – Image depth.
result_rows (int) – Expected image width after transform.
result_cols (int) – Expected image height after transform.
result_slices (int) – Expected image depth after transform.
keep_size (bool) – After cropping and padding, the result image will usually have a different height/width compared to the original input image. If this parameter is set to
True
, then the cropped/padded image will be resized to the input image’s size, i.e. the output shape is always identical to the input shape.
- Returns:
A keypoint (x, y, z, angle, scale).
- crop_bbox_by_coords(bbox: Tuple[float, float, float, float], crop_coords: Tuple[int, int, int, int, int, int], crop_height: int, crop_width: int, crop_depth: int, rows: int, cols: int, slices: int)[source]
Crop a bounding box using the provided coordinates of bottom-left and top-right corners in pixels and the required height and width of the crop.
- Parameters:
bbox (tuple) – A cropped box (x_min, y_min, z_min, x_max, y_max, z_max).
crop_coords (tuple) – Crop coordinates (x1, y1, z1, x2, y2, z2).
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
rows (int) – Image rows.
cols (int) – Image cols.
slices (int) – Image slices.
- Returns:
A cropped bounding box (x_min, y_min, x_max, y_max, z_min, z_max).
- crop_keypoint_by_coords(keypoint: Tuple[float, float, float, float], crop_coords: Tuple[int, int, int, int, int, int])[source]
Crop a keypoint using the provided coordinates of closest-top-left and furthest-bottom-right corners in pixels and the required height, width, and depth of the crop.
- Parameters:
keypoint (tuple) – A keypoint (x, y, z, angle, scale).
crop_coords (tuple) – Crop box coords (x1, y1, z1, x2, y2, z2).
- Returns:
A keypoint (x, y, z, angle, scale).
- get_center_crop_coords(height: int, width: int, depth: int, crop_height: int, crop_width: int, crop_depth: int)[source]
Calculate center crop coordinates from crop dimensions and image dimensions
- Parameters:
height (int) – Image height.
width (int) – Image width.
depth (int) – Image depth.
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
- Returns:
Cropping coodinates (x1, y1, z1, x2, y2, z2)
- get_random_crop_coords(height: int, width: int, depth: int, crop_height: int, crop_width: int, crop_depth: int, h_start: float, w_start: float, d_start: float)[source]
Get cropping coordinates from crop dimensions and starting location
- Parameters:
height (int) – Image height.
width (int) – Image width.
depth (int) – Image depth.
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
h_start (int) – Crop height start.
w_start (int) – Crop width start.
d_start (int) – Crop depth start.
- Returns:
Cropping coodinates (x1, y1, z1, x2, y2, z2)
- keypoint_center_crop(keypoint: Tuple[float, float, float, float], crop_height: int, crop_width: int, crop_depth: int, rows: int, cols: int, slices: int)[source]
Keypoint center crop.
- Parameters:
keypoint (tuple) – A keypoint (x, y, z, angle, scale).
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
rows (int) – Image height.
cols (int) – Image width.
slices (int) – Image depths.
- Returns:
A keypoint (x, y, z, angle, scale).
- keypoint_random_crop(keypoint: Tuple[float, float, float, float], crop_height: int, crop_width: int, crop_depth: int, h_start: float, w_start: float, d_start: float, rows: int, cols: int, slices: int)[source]
Keypoint random crop.
- Parameters:
keypoint – (tuple): A keypoint (x, y, angle, scale).
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
h_start (int) – Crop height start.
w_start (int) – Crop width start.
d_start (int) – Crop depth start.
rows (int) – Image height.
cols (int) – Image width.
slices (int) – Image depth
- Returns:
A keypoint (x, y, z, angle, scale).
- random_crop(img: ndarray, crop_height: int, crop_width: int, crop_depth: int, h_start: float, w_start: float, d_start: float)[source]
Performs crop on image
- Parameters:
img (np.ndarray) – An image
crop_height (int) – Crop height.
crop_width (int) – Crop width.
crop_depth (int) – Crop depth.
h_start (int) – Crop height start.
w_start (int) – Crop width start.
d_start (int) – Crop depth start.
- Returns:
A cropped image