kornia.color

The functions in this section perform various color space conversions.

rgb_to_grayscale(input: torch.Tensor) → torch.Tensor[source]

Convert a RGB image to grayscale.

See RgbToGrayscale for details.

Parameters

input (torch.Tensor) – RGB image to be converted to grayscale.

Returns

Grayscale version of the image.

Return type

torch.Tensor

bgr_to_grayscale(input: torch.Tensor) → torch.Tensor[source]

Convert a BGR image to grayscale.

See BgrToGrayscale for details.

Parameters

input (torch.Tensor) – BGR image to be converted to grayscale.

Returns

Grayscale version of the image.

Return type

torch.Tensor

rgb_to_hsv(image: torch.Tensor) → torch.Tensor[source]

Convert an RGB image to HSV.

Parameters

input (torch.Tensor) – RGB Image to be converted to HSV.

Returns

HSV version of the image.

Return type

torch.Tensor

hsv_to_rgb(image: torch.Tensor) → torch.Tensor[source]

Convert an HSV image to RGB The image data is assumed to be in the range of (0, 1).

Parameters

input (torch.Tensor) – HSV Image to be converted to RGB.

Returns

RGB version of the image.

Return type

torch.Tensor

rgb_to_hls(image: torch.Tensor) → torch.Tensor[source]

Convert an RGB image to HLS The image data is assumed to be in the range of (0, 1).

Parameters

input (torch.Tensor) – RGB Image to be converted to HLS.

Returns

HLS version of the image.

Return type

torch.Tensor

hls_to_rgb(image: torch.Tensor) → torch.Tensor[source]

Convert an HLS image to RGB The image data is assumed to be in the range of (0, 1).

Parameters

input (torch.Tensor) – HLS Image to be converted to RGB.

Returns

RGB version of the image.

Return type

torch.Tensor

rgb_to_bgr(image: torch.Tensor) → torch.Tensor[source]

Convert a RGB image to BGR.

See RgbToBgr for details.

Parameters

image (torch.Tensor) – RGB Image to be converted to BGR.

Returns

BGR version of the image.

Return type

torch.Tensor

bgr_to_rgb(image: torch.Tensor) → torch.Tensor[source]

Convert a BGR image to RGB.

See BgrToRgb for details.

Parameters

input (torch.Tensor) – BGR Image to be converted to RGB.

Returns

RGB version of the image.

Return type

torch.Tensor

rgb_to_yuv(input: torch.Tensor) → torch.Tensor[source]

Convert an RGB image to YUV The image data is assumed to be in the range of (0, 1). :param input: RGB Image to be converted to YUV. :type input: torch.Tensor

Returns

YUV version of the image.

Return type

torch.Tensor

See RgbToYuv for details.

yuv_to_rgb(input: torch.Tensor) → torch.Tensor[source]

Convert an YUV image to RGB The image data is assumed to be in the range of (0, 1). :param input: YUV Image to be converted to RGB. :type input: torch.Tensor

Returns

RGB version of the image.

Return type

torch.Tensor

See YuvToRgb for details.

normalize(data: torch.Tensor, mean: Union[torch.Tensor, float], std: Union[torch.Tensor, float]) → torch.Tensor[source]

Normalise the image with channel-wise mean and standard deviation.

See Normalize for details.

Parameters
  • data (torch.Tensor) – The image tensor to be normalised.

  • mean (torch.Tensor or float) – Mean for each channel.

  • std (torch.Tensor or float) – Standard deviations for each channel.

  • Returns – torch.Tensor: The normalised image tensor.

denormalize(data: torch.Tensor, mean: Union[torch.Tensor, float], std: Union[torch.Tensor, float]) → torch.Tensor[source]

Denormalize the image given channel-wise mean and standard deviation.

See Normalize for details.

Parameters
  • data (torch.Tensor) – The image tensor to be normalised.

  • mean (torch.Tensor or float) – Mean for each channel.

  • std (torch.Tensor or float) – Standard deviations for each channel.

  • Returns – torch.Tensor: The normalised image tensor.

adjust_brightness(input: torch.Tensor, brightness_factor: Union[float, torch.Tensor]) → torch.Tensor[source]

Adjust Brightness of an image.

See AdjustBrightness for details.

adjust_contrast(input: torch.Tensor, contrast_factor: Union[float, torch.Tensor]) → torch.Tensor[source]

Adjust Contrast of an image.

See AdjustContrast for details.

adjust_saturation(input: torch.Tensor, saturation_factor: Union[float, torch.Tensor]) → torch.Tensor[source]

Adjust color saturation of an image.

See AdjustSaturation for details.

adjust_hue(input: torch.Tensor, hue_factor: Union[float, torch.Tensor]) → torch.Tensor[source]

Adjust hue of an image.

See AdjustHue for details.

adjust_gamma(input: torch.Tensor, gamma: Union[float, torch.Tensor], gain: Union[float, torch.Tensor] = 1.0) → torch.Tensor[source]

Perform gamma correction on an image.

See AdjustGamma for details.

add_weighted(src1: torch.Tensor, alpha: float, src2: torch.Tensor, beta: float, gamma: float) → torch.Tensor[source]

Blend two Tensors.

See AddWeighted for details.

class AddWeighted(alpha: float, beta: float, gamma: float)[source]

Calculates the weighted sum of two Tensors.

The function calculates the weighted sum of two Tensors as follows:

\[out = src1 * alpha + src2 * beta + gamma\]
Parameters
  • src1 (torch.Tensor) – Tensor.

  • alpha (float) – weight of the src1 elements.

  • src2 (torch.Tensor) – Tensor of same size and channel number as src1.

  • beta (float) – weight of the src2 elements.

  • gamma (float) – scalar added to each sum.

Returns

Weighted Tensor.

Return type

torch.Tensor

class RgbToGrayscale[source]

convert RGB image to grayscale version of image.

the image data is assumed to be in the range of (0, 1).

Parameters

input (torch.Tensor) – RGB image to be converted to grayscale.

Returns

grayscale version of the image.

Return type

torch.Tensor

shape:
  • input: \((*, 3, H, W)\)

  • output: \((*, 1, H, W)\)

reference:

https://docs.opencv.org/4.0.1/de/d25/imgproc_color_conversions.html

Examples:

>>> import torch
>>> import kornia
>>> input = torch.rand(2, 3, 4, 5)
>>> gray = kornia.color.RgbToGrayscale()
>>> output = gray(input)  # 2x1x4x5
class BgrToGrayscale[source]

convert BGR image to grayscale version of image.

the image data is assumed to be in the range of (0, 1).

Parameters

input (torch.Tensor) – BGR image to be converted to grayscale.

Returns

grayscale version of the image.

Return type

torch.Tensor

shape:
  • input: \((*, 3, H, W)\)

  • output: \((*, 1, H, W)\)

reference:

https://docs.opencv.org/4.0.1/de/d25/imgproc_color_conversions.html

Examples:

>>> import torch
>>> import kornia
>>> input = torch.rand(2, 3, 4, 5)
>>> gray = kornia.color.BgrToGrayscale()
>>> output = gray(input)  # 2x1x4x5
class RgbToHsv[source]

Convert image from RGB to HSV.

The image data is assumed to be in the range of (0, 1).

Parameters

image (torch.Tensor) – RGB image to be converted to HSV.

Returns

HSV version of the image.

Return type

torch.tensor

shape:
  • image: \((*, 3, H, W)\)

  • output: \((*, 3, H, W)\)

Examples:

>>> import torch
>>> import kornia
>>> input = torch.rand(2, 3, 4, 5)
>>> hsv = kornia.color.RgbToHsv()
>>> output = hsv(input)  # 2x3x4x5
class HsvToRgb[source]

Convert image from HSV to Rgb The image data is assumed to be in the range of (0, 1).

Parameters

image (torch.Tensor) – HSV image to be converted to RGB.

Returns

RGB version of the image.

Return type

torch.tensor

shape:
  • image: \((*, 3, H, W)\)

  • output: \((*, 3, H, W)\)

Examples:

>>> import torch
>>> import kornia
>>> input = torch.rand(2, 3, 4, 5)
>>> rgb = kornia.color.HsvToRgb()
>>> output = rgb(input)  # 2x3x4x5
class RgbToHls[source]

Convert image from RGB to HLS The image data is assumed to be in the range of (0, 1).

Parameters

image (torch.Tensor) – RGB image to be converted to HLS.

Returns

HLS version of the image.

Return type

torch.tensor

shape:
  • image: \((*, 3, H, W)\)

  • output: \((*, 3, H, W)\)

Examples:

>>> import torch
>>> import kornia
>>> input = torch.rand(2, 3, 4, 5)
>>> hls = kornia.color.RgbToHls()
>>> output = hls(input)  # 2x3x4x5
class HlsToRgb[source]

Convert image from HLS to Rgb The image data is assumed to be in the range of (0, 1).

Parameters

image (torch.Tensor) – HLS image to be converted to RGB.

Returns

RGB version of the image.

Return type

torch.tensor

shape:
  • image: \((*, 3, H, W)\)

  • output: \((*, 3, H, W)\)

reference:

https://en.wikipedia.org/wiki/HSL_and_HSV

Examples:

>>> import torch
>>> import kornia
>>> input = torch.rand(2, 3, 4, 5)
>>> rgb = kornia.color.HlsToRgb()
>>> output = rgb(input)  # 2x3x4x5
class RgbToBgr[source]

Convert image from RGB to BGR.

The image data is assumed to be in the range of (0, 1).

Parameters

image (torch.Tensor) – RGB image to be converted to BGR

Returns

BGR version of the image.

Return type

torch.Tensor

shape:
  • image: \((*, 3, H, W)\)

  • output: \((*, 3, H, W)\)

Examples:

>>> import torch
>>> import kornia
>>> input = torch.rand(2, 3, 4, 5)
>>> bgr = kornia.color.RgbToBgr()
>>> output = bgr(input)  # 2x3x4x5
class BgrToRgb[source]

Convert image from BGR to RGB.

The image data is assumed to be in the range of (0, 1).

Parameters

image (torch.Tensor) – BGR image to be converted to RGB.

Returns

RGB version of the image.

Return type

torch.Tensor

shape:
  • image: \((*, 3, H, W)\)

  • output: \((*, 3, H, W)\)

Examples:

>>> import torch
>>> import kornia
>>> input = torch.rand(2, 3, 4, 5)
>>> rgb = kornia.color.BgrToRgb()
>>> output = rgb(input)  # 2x3x4x5
class RgbToYuv[source]

Convert image from RGB to YUV The image data is assumed to be in the range of (0, 1). :param image: RGB image to be converted to YUV. :type image: torch.Tensor

Returns

YUV version of the image.

Return type

torch.tensor

shape:
  • image: \((*, 3, H, W)\)

  • output: \((*, 3, H, W)\)

Examples::
>>> input = torch.rand(2, 3, 4, 5)
>>> yuv = kornia.color.RgbToYuv()
>>> output = yuv(input)  # 2x3x4x5
Reference::

[1] https://es.wikipedia.org/wiki/YUV#RGB_a_Y’UV

class YuvToRgb[source]

Convert image from YUV to RGB The image data is assumed to be in the range of (0, 1). :param image: YUV image to be converted to RGB. :type image: torch.Tensor

Returns

RGB version of the image.

Return type

torch.tensor

shape:
  • image: \((*, 3, H, W)\)

  • output: \((*, 3, H, W)\)

Examples::
>>> input = torch.rand(2, 3, 4, 5)
>>> rgb = kornia.color.YuvToRgb()
>>> output = rgb(input)  # 2x3x4x5
class Normalize(mean: Union[torch.Tensor, float], std: Union[torch.Tensor, float])[source]

Normalize a tensor image or a batch of tensor images with mean and standard deviation. Input must be a tensor of shape (C, H, W) or a batch of tensors \((*, C, H, W)\).

Given mean: (M1,...,Mn) and std: (S1,..,Sn) for n channels, this transform will normalize each channel of the input torch.Tensor i.e. input[channel] = (input[channel] - mean[channel]) / std[channel]

Parameters
class Denormalize(mean: Union[torch.Tensor, float], std: Union[torch.Tensor, float])[source]

Denormalize a tensor image or a batch of tensor images . Input must be a tensor of shape (C, H, W) or a batch of tensors \((*, C, H, W)\).

Given mean: (M1,...,Mn) and std: (S1,..,Sn) for n channels, this transform will denormalize each channel of the input torch.Tensor i.e. input[channel] = (input[channel] * std[channel]) + mean[channel]

Parameters
class AdjustBrightness(brightness_factor: Union[float, torch.Tensor])[source]

Adjust Brightness of an image.

The input image is expected to be in the range of [0, 1].

Parameters
  • input (torch.Tensor) – Image/Input to be adjusted in the shape of (*, N).

  • brightness_factor (Union[float, torch.Tensor]) – Brightness adjust factor per element in the batch. 0 does not modify the input image while any other number modify the brightness.

Returns

Adjusted image.

Return type

torch.Tensor

class AdjustContrast(contrast_factor: Union[float, torch.Tensor])[source]

Adjust Contrast of an image.

The input image is expected to be in the range of [0, 1].

Parameters
  • input (torch.Tensor) – Image to be adjusted in the shape of (*, N).

  • contrast_factor (Union[float, torch.Tensor]) – Contrast adjust factor per element in the batch. 0 generates a compleatly black image, 1 does not modify the input image while any other non-negative number modify the brightness by this factor.

Returns

Adjusted image.

Return type

torch.Tensor

class AdjustSaturation(saturation_factor: Union[float, torch.Tensor])[source]

Adjust color saturation of an image.

The input image is expected to be an RGB image in the range of [0, 1].

Parameters
  • input (torch.Tensor) – Image/Tensor to be adjusted in the shape of (*, N).

  • saturation_factor (float) – How much to adjust the saturation. 0 will give a black

  • white image, 1 will give the original image while 2 will enhance the saturation (and) –

  • a factor of 2. (by) –

Returns

Adjusted image.

Return type

torch.Tensor

class AdjustHue(hue_factor: Union[float, torch.Tensor])[source]

Adjust hue of an image.

The input image is expected to be an RGB image in the range of [0, 1].

Parameters
  • input (torch.Tensor) – Image/Tensor to be adjusted in the shape of (*, N).

  • hue_factor (float) – How much to shift the hue channel. Should be in [-PI, PI]. PI and -PI give complete reversal of hue channel in HSV space in positive and negative direction respectively. 0 means no shift. Therefore, both -PI and PI will give an image with complementary colors while 0 gives the original image.

Returns

Adjusted image.

Return type

torch.Tensor

class AdjustGamma(gamma: Union[float, torch.Tensor], gain: Union[float, torch.Tensor] = 1.0)[source]

Perform gamma correction on an image.

The input image is expected to be in the range of [0, 1].

Parameters
  • input (torch.Tensor) – Image/Tensor to be adjusted in the shape of (*, N).

  • gamma (float) – Non negative real number, same as γgammaγ in the equation. gamma larger than 1 make the shadows darker, while gamma smaller than 1 make dark regions lighter.

  • gain (float, optional) – The constant multiplier. Default 1.

Returns

Adjusted image.

Return type

torch.Tensor