View source: R/item-transforms-geometry.R
| item_transform_affine | R Documentation |
Applies an affine transformation (rotation, translation, scale and shear) to the image inside a dataset item, keeping the image size unchanged. The target is transformed with the same geometry so that it stays aligned with the image.
item_transform_affine(
x,
angle = 0,
translate = c(0, 0),
scale = 1,
shear = 0,
interpolation = 0,
fill = NULL,
center = NULL
)
x |
A dataset item, typically an |
angle |
(numeric): Rotation angle value in degrees, counter-clockwise. |
translate |
(integer vector of length 2): Horizontal and vertical translations (post-rotation translation). |
scale |
(numeric): Overall scale. |
shear |
(numeric vector or numeric): Shear angle value in degrees
between |
interpolation |
(integer or character): Interpolation mode.
Supported values are |
fill |
Fill color for area outside the transform. Default is |
center |
(numeric vector of length 2, optional): Optional center of
rotation, |
For detection items, the bounding boxes are transformed via
target_transform_affine() so that they follow the image, and the item is
returned as an image_with_rotated_box with boxes in xyxyr format. For
segmentation items, the masks are transformed alongside the image using
nearest-neighbour sampling.
A dataset item with the image and target transformed. Detection items
are returned as image_with_rotated_box; segmentation items keep their
class.
Other item_unitary_transforms:
item_transform_center_crop(),
item_transform_crop(),
item_transform_hflip(),
item_transform_pad(),
item_transform_perspective(),
item_transform_resize(),
item_transform_rotate(),
item_transform_vflip()
## Not run:
url <- "https://upload.wikimedia.org/wikipedia/commons/b/b6/Felis_catus-cat_on_snow.jpg"
img <- base_loader(url) |> transform_to_tensor()
boxes <- torch_tensor(matrix(c(600, 200, 2880, 1860), ncol = 4), dtype = torch_float32())
before <- list(x = img, y = list(boxes = boxes, labels = "cat",
image_height = img$shape[2], image_width = img$shape[3]))
class(before) <- c("image_with_bounding_box", "list")
after <- item_transform_affine(before, angle = 20, translate = c(50, 30),
scale = 1.1, shear = 10)
before_plot <- draw_bounding_boxes(before, colors = "blue", width = 10)
after_plot <- draw_bounding_boxes(after, colors = "red", width = 10)
tensor_image_browse(before_plot)
tensor_image_browse(after_plot)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.