Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add pad #2197

Merged
merged 2 commits into from
Dec 13, 2024
Merged

Add pad #2197

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ repos:
files: setup.py
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.8.2
rev: v0.8.3
hooks:
# Run the linter.
- id: ruff
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,7 @@ Spatial-level transforms will simultaneously change both an input image as well

| Transform | Image | Mask |
| -------------------------------------------------------------------------- | :---: | :--: |
| [Pad3D](https://explore.albumentations.ai/transform/Pad3D) | ✓ | ✓ |
| [PadIfNeeded3D](https://explore.albumentations.ai/transform/PadIfNeeded3D) | ✓ | ✓ |

## A few more examples of **augmentations**
Expand Down
27 changes: 18 additions & 9 deletions albumentations/augmentations/crops/transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -429,17 +429,20 @@ class InitSchema(BaseCropAndPad.InitSchema):
border_mode: BorderModeType
fill: ColorType
fill_mask: ColorType
pad_mode: BorderModeType | None = Field(deprecated="pad_mode is deprecated, use border_mode instead")
pad_cval: ColorType | None = Field(deprecated="pad_cval is deprecated, use fill instead")
pad_cval_mask: ColorType | None = Field(deprecated="pad_cval_mask is deprecated, use fill_mask instead")
pad_mode: BorderModeType | None
pad_cval: ColorType | None
pad_cval_mask: ColorType | None

@model_validator(mode="after")
def validate_dimensions(self) -> Self:
if self.pad_mode is not None:
warn("pad_mode is deprecated, use border_mode instead", DeprecationWarning, stacklevel=2)
self.border_mode = self.pad_mode
if self.pad_cval is not None:
warn("pad_cval is deprecated, use fill instead", DeprecationWarning, stacklevel=2)
self.fill = self.pad_cval
if self.pad_cval_mask is not None:
warn("pad_cval_mask is deprecated, use fill_mask instead", DeprecationWarning, stacklevel=2)
self.fill_mask = self.pad_cval_mask
return self

Expand Down Expand Up @@ -561,9 +564,9 @@ class InitSchema(BaseCropAndPad.InitSchema):
border_mode: BorderModeType
fill: ColorType
fill_mask: ColorType
pad_mode: BorderModeType | None = Field(deprecated="pad_mode is deprecated, use border_mode instead")
pad_cval: ColorType | None = Field(deprecated="pad_cval is deprecated, use fill instead")
pad_cval_mask: ColorType | None = Field(deprecated="pad_cval_mask is deprecated, use fill_mask instead")
pad_mode: BorderModeType | None
pad_cval: ColorType | None
pad_cval_mask: ColorType | None

@model_validator(mode="after")
def validate_coordinates(self) -> Self:
Expand All @@ -575,10 +578,13 @@ def validate_coordinates(self) -> Self:
raise ValueError(msg)

if self.pad_mode is not None:
warn("pad_mode is deprecated, use border_mode instead", DeprecationWarning, stacklevel=2)
self.border_mode = self.pad_mode
if self.pad_cval is not None:
warn("pad_cval is deprecated, use fill instead", DeprecationWarning, stacklevel=2)
self.fill = self.pad_cval
if self.pad_cval_mask is not None:
warn("pad_cval_mask is deprecated, use fill_mask instead", DeprecationWarning, stacklevel=2)
self.fill_mask = self.pad_cval_mask

return self
Expand Down Expand Up @@ -1603,9 +1609,9 @@ class CropAndPad(DualTransform):
class InitSchema(BaseTransformInitSchema):
px: PxType | None
percent: PercentType | None
pad_mode: BorderModeType | None = Field(deprecated="pad_mode is deprecated, use border_mode instead")
pad_cval: ColorType | None = Field(deprecated="pad_cval is deprecated, use fill instead")
pad_cval_mask: ColorType | None = Field(deprecated="pad_cval_mask is deprecated, use fill_mask instead")
pad_mode: BorderModeType | None
pad_cval: ColorType | None
pad_cval_mask: ColorType | None
keep_size: bool
sample_independently: bool
interpolation: InterpolationType
Expand All @@ -1623,10 +1629,13 @@ def check_px_percent(self) -> Self:
msg = "Only px or percent may be set!"
raise ValueError(msg)
if self.pad_mode is not None:
warn("pad_mode is deprecated, use border_mode instead", DeprecationWarning, stacklevel=2)
self.border_mode = self.pad_mode
if self.pad_cval is not None:
warn("pad_cval is deprecated, use fill instead", DeprecationWarning, stacklevel=2)
self.fill = self.pad_cval
if self.pad_cval_mask is not None:
warn("pad_cval_mask is deprecated, use fill_mask instead", DeprecationWarning, stacklevel=2)
self.fill_mask = self.pad_cval_mask

return self
Expand Down
15 changes: 6 additions & 9 deletions albumentations/augmentations/geometric/rotate.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

import math
from typing import Any, cast
from warnings import warn

import cv2
import numpy as np
from pydantic import Field, model_validator
from pydantic import model_validator
from typing_extensions import Literal, Self

from albumentations.augmentations.crops import functional as fcrops
Expand Down Expand Up @@ -156,20 +157,16 @@ class InitSchema(RotateInitSchema):
fill: ColorType
fill_mask: ColorType

value: ColorType | None = Field(
default=None,
deprecated="Deprecated use fill instead",
)
mask_value: ColorType | None = Field(
default=None,
deprecated="Deprecated use fill_mask instead",
)
value: ColorType | None
mask_value: ColorType | None

@model_validator(mode="after")
def validate_value(self) -> Self:
if self.value is not None:
warn("value is deprecated, use fill instead", DeprecationWarning, stacklevel=2)
self.fill = self.value
if self.mask_value is not None:
warn("mask_value is deprecated, use fill_mask instead", DeprecationWarning, stacklevel=2)
self.fill_mask = self.mask_value
return self

Expand Down
26 changes: 10 additions & 16 deletions albumentations/augmentations/geometric/transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -675,18 +675,9 @@ class InitSchema(BaseTransformInitSchema):
interpolation: InterpolationType
mask_interpolation: InterpolationType

cval: ColorType | None = Field(
default=None,
deprecated="Deprecated use fill instead",
)
cval_mask: ColorType | None = Field(
default=None,
deprecated="Deprecated use fill_mask instead",
)
mode: BorderModeType | None = Field(
default=None,
deprecated="Deprecated use border_mode instead",
)
cval: ColorType | None
cval_mask: ColorType | None
mode: BorderModeType | None

fill: ColorType
fill_mask: ColorType
Expand Down Expand Up @@ -762,10 +753,13 @@ def _handle_dict_arg(
def validate_fill_types(self) -> Self:
if self.cval is not None:
self.fill = self.cval
warn("cval is deprecated, use fill instead", DeprecationWarning, stacklevel=2)
if self.cval_mask is not None:
self.fill_mask = self.cval_mask
warn("cval_mask is deprecated, use fill_mask instead", DeprecationWarning, stacklevel=2)
if self.mode is not None:
self.border_mode = self.mode
warn("mode is deprecated, use border_mode instead", DeprecationWarning, stacklevel=2)
return self

def __init__(
Expand Down Expand Up @@ -2388,10 +2382,8 @@ class InitSchema(BaseTransformInitSchema):
pad_width_divisor: int | None = Field(ge=1)
position: PositionType
border_mode: BorderModeType
value: ColorType | None = Field(deprecated="Deprecated. Use 'fill' instead.")
mask_value: ColorType | None = Field(
deprecated="Deprecated. Use 'fill_mask' instead.",
)
value: ColorType | None
mask_value: ColorType | None

fill: ColorType
fill_mask: ColorType
Expand All @@ -2410,9 +2402,11 @@ def validate_divisibility(self) -> Self:
raise ValueError(msg)

if self.mask_value is not None:
warn("mask_value is deprecated, use fill_mask instead", DeprecationWarning, stacklevel=2)
self.fill_mask = self.mask_value

if self.value is not None:
warn("value is deprecated, use fill instead", DeprecationWarning, stacklevel=2)
self.fill = self.value

return self
Expand Down
Loading
Loading