Learn R Programming

tfaddons (version 0.10.0)

img_dense_image_warp: Dense image warp

Description

Image warping using per-pixel flow vectors.

Usage

img_dense_image_warp(image, flow, name = NULL)

Arguments

image

4-D float Tensor with shape [batch, height, width, channels].

flow

A 4-D float Tensor with shape [batch, height, width, 2].

name

A name for the operation (optional).

Value

A 4-D float `Tensor` with shape`[batch, height, width, channels]` and same type as input image.

Raises

ValueError: if height < 2 or width < 2 or the inputs have the wrong number of dimensions.

Details

Apply a non-linear warp to the image, where the warp is specified by a dense flow field of offset vectors that define the correspondences of pixel values in the output image back to locations in the source image. Specifically, the pixel value at output[b, j, i, c] is images[b, j - flow[b, j, i, 0], i - flow[b, j, i, 1], c]. The locations specified by this formula do not necessarily map to an int index. Therefore, the pixel value is obtained by bilinear interpolation of the 4 nearest pixels around (b, j - flow[b, j, i, 0], i - flow[b, j, i, 1]). For locations outside of the image, we use the nearest pixel values at the image boundary.

Examples

Run this code
# NOT RUN {
# }
# NOT RUN {
flow_shape = list(1L, as.integer(input_img$shape[[2]]), as.integer(input_img$shape[[3]]), 2L)
init_flows = tf$random$normal(flow_shape) * 2.0
dense_img_warp = img_dense_image_warp(input_img, init_flows)
dense_img_warp = tf$squeeze(dense_img_warp, 0)
# }
# NOT RUN {

# }

Run the code above in your browser using DataLab