kornia.contrib¶

connected_components(input, num_iterations=100)[source]

Computes the Connected-component labelling (CCL) algorithm.

The implementation is an adaptation of the following repository:

https://gist.github.com/efirdc/5d8bd66859e574c683a504a4690ae8bc

Note

This is an experimental API subject to changes and optimization improvements.

Note

See a working example here.

Parameters
• input (Tensor) – the binarized input image with shape $$(B, 1, H, W)$$. The image must be in floating point with range [0, 1].

• num_iterations (int, optional) – the number of iterations to make the algorithm to converge. Default: 100

Return type

Tensor

Returns

The labels image with the same shape of the input image.

Example

>>> img = torch.rand(2, 1, 4, 5)
>>> img_labels = connected_components(img, num_iterations=100)


Function that extract patches from tensors and stack them.

See ExtractTensorPatches for details.

Return type

Tensor

Module¶

Module that extract patches from tensors and stack them.

In the simplest case, the output value of the operator with input size $$(B, C, H, W)$$ is $$(B, N, C, H_{out}, W_{out})$$.

where
• $$B$$ is the batch size.

• $$N$$ denotes the total number of extracted patches stacked in

• $$C$$ denotes the number of input channels.

• $$H$$, $$W$$ the input height and width of the input in pixels.

• $$H_{out}$$, $$W_{out}$$ denote to denote to the patch size defined in the function signature. left-right and top-bottom order.

• window_size is the size of the sliding window and controls the shape of the output tensor and defines the shape of the output patch.

• stride controls the stride to apply to the sliding window and regulates the overlapping between the extracted patches.

• padding controls the amount of implicit zeros-paddings on both sizes at each dimension.

The parameters window_size, stride and padding can be either:

• a single int – in which case the same value is used for the height and width dimension.

• a tuple of two ints – in which case, the first int is used for the height dimension, and the second int for the width dimension.

Parameters
Shape:
• Input: $$(B, C, H, W)$$

• Output: $$(B, N, C, H_{out}, W_{out})$$

Returns

the tensor with the extracted patches.

Examples

>>> input = torch.arange(9.).view(1, 1, 3, 3)
>>> patches = extract_tensor_patches(input, (2, 3))
>>> input
tensor([[[[0., 1., 2.],
[3., 4., 5.],
[6., 7., 8.]]]])
>>> patches[:, -1]
tensor([[[[3., 4., 5.],
[6., 7., 8.]]]])