Python API

This section includes information for using the pure Python API of bob.ip.color.

bob.ip.color.get_config()[source]

Returns a string containing the configuration information.

bob.ip.color.gray_to_rgb()
  • gray_to_rgb(input, output) -> output

  • gray_to_rgb(y) -> r, g, b

Converts a gray pixel or a full array (image) to RGB

This function converts a gray pixel or a gray array representing an image to a monochrome colored equivalent. This method is implemented for completeness and is equivalent to replicating the Y pixel value over the three RGB bands.

The input is expected to be either an array or a scalar. If you input an array, it is expected to assume the shape (height, width), representing an image encoded in gray scale, with the specified height and width. If you input a single scalar, it defines the value of Y in a discrete way.

The output array may be optionally provided. In such a case, it should be a 3D array with the same number of columns and rows as the input, and have have the same data type. The number of color planes (first dimension) of such array should be 3. If an output array is not provided, one will be allocated internally. In any case, the output array is always returned.

If the input is of scalar type, this method will return a tuple with the 3 discrete values for red, green and blue.

Note

This method only supports arrays and scalars of the following data types:

  • numpy.uint8

  • numpy.uint16

  • numpy.float64 (or the native python float)

To create an object with a scalar type that will be accepted by this

method, use a construction like the following:

>> import numpy
>> y = numpy.uint8(32)

Parameters:

input : array_like (uint8|uint16|float64, 2D)

Input array containing an image with the shape (height, width)

output : array (uint8|uint16|float64, 3D), optional

Output array - if provided, should have matching data type to input. The shape should be (3, height, width)

y : scalar (uint8|uint16|float64)

The gray-scale pixel scalar you wish to convert into an RGB tuple

Returns:

output : array (uint8|uint16|float64, 3D)

The output array is returned by the function. If one was not provided, a new one is allocated internally

r, g, b : scalar (uint8|uint16|float64)

Discrete pixel values for the red, green and blue channels

bob.ip.color.hsl_to_rgb()
  • hsl_to_rgb(input, output) -> output

  • hsl_to_rgb(h, s, l) -> r, g, b

Converts an HSL color-coded pixel or a full array (image) to RGB

This function converts an HSL array or color-coded pixel (http://en.wikipedia.org/wiki/HSL_and_HSL) to RGB.

The input is expected to be either an array or scalars. If you input an array, it is expected to assume the shape (3, height, width), representing an image encoded in HSL, in this order, with the specified height and width. The output array may be optionally provided. In such a case, it should be a 3D array with the same dimensions as the input, and have have the same data type. If an output array is not provided, one will be allocated internally. In any case, the output array is always returned.

If the input is of scalar type, this method will return the HSL version for a pixel with the 3 discrete values for red, green and blue. The input in this case should consist of 3 scalars defining the discrete values of H, S and L.

Note

If you provide python scalars, then you should provide 3 values that share the same scalar type. Type mixing will raise a TypeError exception.

Note

This method only supports arrays and scalars of the following data types:

  • numpy.uint8

  • numpy.uint16

  • numpy.float64 (or the native python float)

To create an object with a scalar type that will be accepted by this

method, use a construction like the following:

>> import numpy
>> r = numpy.uint8(32)

Parameters:

input : array_like (uint8|uint16|float64, 3D)

Input array containing an image with the shape (3, height, width)

output : array (uint8|uint16|float64, 2D), optional

Output array - if provided, should have matching data type to input. The shape should match the input shape

h, s, l : scalar (uint8|uint16|float64)

Discrete pixel values for H, S and L channels

Returns:

output : array (uint8|uint16|float64, 2D)

The output array is returned by the function. If one was not provided, a new one is allocated internally

r, g, b : scalar (uint8|uint16|float64)

Three scalars are returned when this function is fed discrete HSL values. The types match the input pixel values

bob.ip.color.hsv_to_rgb()
  • hsv_to_rgb(input, output) -> output

  • hsv_to_rgb(h, s, v) -> r, g, b

Converts an HSV color-coded pixel or a full array (image) to RGB

This function converts an HSV array or color-coded pixel (http://en.wikipedia.org/wiki/HSL_and_HSV) to RGB.

The input is expected to be either an array or scalars. If you input an array, it is expected to assume the shape (3, height, width), representing an image encoded in HSV, in this order, with the specified height and width. The output array may be optionally provided. In such a case, it should be a 3D array with the same dimensions as the input, and have have the same data type. If an output array is not provided, one will be allocated internally. In any case, the output array is always returned.

If the input is of scalar type, this method will return the HSV version for a pixel with the 3 discrete values for red, green and blue. The input in this case should consist of 3 scalars defining the discrete values of H, S and V.

Note

If you provide python scalars, then you should provide 3 values that share the same scalar type. Type mixing will raise a TypeError exception.

Note

This method only supports arrays and scalars of the following data types:

  • numpy.uint8

  • numpy.uint16

  • numpy.float64 (or the native python float)

To create an object with a scalar type that will be accepted by this

method, use a construction like the following:

>> import numpy
>> r = numpy.uint8(32)

Parameters:

input : array_like (uint8|uint16|float64, 3D)

Input array containing an image with the shape (3, height, width)

output : array (uint8|uint16|float64, 2D), optional

Output array - if provided, should have matching data type to input. The shape should match the input shape

h, s, v : scalar (uint8|uint16|float64)

Discrete pixel values for H, S and V channels

Returns:

output : array (uint8|uint16|float64, 2D)

The output array is returned by the function. If one was not provided, a new one is allocated internally

r, g, b : scalar (uint8|uint16|float64)

Three scalars are returned when this function is fed discrete HSV values. The types match the input pixel values

bob.ip.color.rgb_to_gray()
  • rgb_to_gray(input, output) -> output

  • rgb_to_gray(r, g, b) -> y

Converts an RGB color-coded pixel or a full array (image) to grayscale

This function converts an RGB color-coded pixel or a full RGB array to grayscale using the CCIR 601 (Kb = 0.114, Kr = 0.299) norm (http://www.fourcc.org/fccyvrgb.php). It returns only the gray value (Y component) in the desired data format. This method is more efficient than calling rgb_to_yuv() method just to extract the Y component.

The input is expected to be either an array or scalars. If you input an array, it is expected to assume the shape (3, height, width), representing an image encoded in RGB, in this order, with the specified height and width; or a set of 3 scalars defining the input R, G and B in a discrete way. The output array may be optionally provided. In such a case, it should be a 2D array with the same number of columns and rows as the input, and have have the same data type. If an output array is not provided, one will be allocated internally. In any case, the output array is always returned.

If the input is of scalar type, this method will return the gray-scaled version for a pixel with the 3 discrete values for red, green and blue.

Note

If you provide python scalars, then you should provide 3 values that share the same scalar type. Type mixing will raise a TypeError exception.

Note

This method only supports arrays and scalars of the following data types:

  • numpy.uint8

  • numpy.uint16

  • numpy.float64 (or the native python float)

To create an object with a scalar type that will be accepted by this

method, use a construction like the following:

>> import numpy
>> r = numpy.uint8(32)

Parameters:

input : array_like (uint8|uint16|float64, 3D)

Input array containing an image with the shape (3, height, width)

output : array (uint8|uint16|float64, 2D), optional

Output array - if provided, should have matching data type to input. The shape should be (height, width)

r, g, b : scalar (uint8|uint16|float64)

Discrete pixel values for the red, green and blue channels

Returns:

output : array_like (uint8|uint16|float64, 2D)

The output array is returned by the function. If one was not provided, a new one is allocated internally

y : scalar (uint8|uint16|float64)

A scalar is returned when this function is fed discrete RGB values. The type matches the input pixel values

bob.ip.color.rgb_to_hsl()
  • rgb_to_hsl(input, output) -> output

  • rgb_to_hsl(r, g, b) -> h, s, l

Converts an RGB color-coded pixel or a full array (image) to HSL

This function converts an RGB color-coded pixel or a full RGB array to HSL (http://en.wikipedia.org/wiki/HSL_and_HSL).

The input is expected to be either an array or scalars. If you input an array, it is expected to assume the shape (3, height, width), representing an image encoded in RGB, in this order, with the specified height and width. The output array may be optionally provided. In such a case, it should be a 3D array with the same dimensions as the input, and have have the same data type. If an output array is not provided, one will be allocated internally. In any case, the output array is always returned.

If the input is of scalar type, this method will return the HSL version for a pixel with the 3 discrete values for H, S and L. The input in this case should consist of 3 scalars defining the discrete values of R, G and B.

Note

If you provide python scalars, then you should provide 3 values that share the same scalar type. Type mixing will raise a TypeError exception.

Note

This method only supports arrays and scalars of the following data types:

  • numpy.uint8

  • numpy.uint16

  • numpy.float64 (or the native python float)

To create an object with a scalar type that will be accepted by this

method, use a construction like the following:

>> import numpy
>> r = numpy.uint8(32)

Parameters:

input : array_like (uint8|uint16|float64, 3D)

Input array containing an image with the shape (3, height, width)

output : array (uint8|uint16|float64, 2D), optional

Output array - if provided, should have matching data type to input. The shape should match the input shape

r, g, b : scalar (uint8|uint16|float64)

Discrete pixel values for the red, green and blue channels

Returns:

output : array (uint8|uint16|float64, 2D)

The output array is returned by the function. If one was not provided, a new one is allocated internally

h, s, l : scalar (uint8|uint16|float64)

Three scalars are returned when this function is fed discrete RGB values. The types match the input pixel values

bob.ip.color.rgb_to_hsv()
  • rgb_to_hsv(input, output) -> output

  • rgb_to_hsv(r, g, b) -> h, s, v

Converts an RGB color-coded pixel or a full array (image) to HSV

This function converts an RGB color-coded pixel or a full RGB array to HSV (http://en.wikipedia.org/wiki/HSL_and_HSV).

The input is expected to be either an array or scalars. If you input an array, it is expected to assume the shape (3, height, width), representing an image encoded in RGB, in this order, with the specified height and width. The output array may be optionally provided. In such a case, it should be a 3D array with the same dimensions as the input, and have have the same data type. If an output array is not provided, one will be allocated internally. In any case, the output array is always returned.

If the input is of scalar type, this method will return the HSV version for a pixel with the 3 discrete values for H, S and V. The input in this case should consist of 3 scalars defining the discrete values of R, G and B.

Note

If you provide python scalars, then you should provide 3 values that share the same scalar type. Type mixing will raise a TypeError exception.

Note

This method only supports arrays and scalars of the following data types:

  • numpy.uint8

  • numpy.uint16

  • numpy.float64 (or the native python float)

To create an object with a scalar type that will be accepted by this

method, use a construction like the following:

>> import numpy
>> r = numpy.uint8(32)

Parameters:

input : array_like (uint8|uint16|float64, 3D)

Input array containing an image with the shape (3, height, width)

output : array (uint8|uint16|float64, 2D), optional

Output array - if provided, should have matching data type to input. The shape should match the input shape

r, g, b : scalar (uint8|uint16|float64)

Discrete pixel values for the red, green and blue channels

Returns:

output : array (uint8|uint16|float64, 2D)

The output array is returned by the function. If one was not provided, a new one is allocated internally

h, s, v : scalar (uint8|uint16|float64)

Three scalars are returned when this function is fed discrete RGB values. The types match the input pixel values

bob.ip.color.rgb_to_yuv()
  • rgb_to_yuv(input, output) -> output

  • rgb_to_yuv(r, g, b) -> y, u, v

Converts an RGB color-coded pixel or a full array (image) to YUV

This function converts an RGB color-coded pixel or a full RGB array to YUV (Y’CbCr) using the CCIR 601 (Kb = 0.114, Kr = 0.299) norm (http://www.fourcc.org/fccyvrgb.php).

The input is expected to be either an array or scalars. If you input an array, it is expected to assume the shape (3, height, width), representing an image encoded in RGB, in this order, with the specified height and width. The output array may be optionally provided. In such a case, it should be a 3D array with the same dimensions as the input, and have have the same data type. If an output array is not provided, one will be allocated internally. In any case, the output array is always returned.

If the input is of scalar type, this method will return the YUV version for a pixel with the 3 discrete values for Y, U (Cb) and V (Cr). The input in this case should consist of 3 scalars defining the discrete values of R, G and B.

Note

If you provide python scalars, then you should provide 3 values that share the same scalar type. Type mixing will raise a TypeError exception.

Note

This method only supports arrays and scalars of the following data types:

  • numpy.uint8

  • numpy.uint16

  • numpy.float64 (or the native python float)

To create an object with a scalar type that will be accepted by this

method, use a construction like the following:

>> import numpy
>> r = numpy.uint8(32)

Parameters:

input : array_like (uint8|uint16|float64, 3D)

Input array containing an image with the shape (3, height, width)

output : array (uint8|uint16|float64, 2D), optional

Output array - if provided, should have matching data type to input. The shape should match the input shape

r, g, b : scalar (uint8|uint16|float64)

Discrete pixel values for the red, green and blue channels

Returns:

output : array (uint8|uint16|float64, 2D)

The output array is returned by the function. If one was not provided, a new one is allocated internally

y, u, v : scalar (uint8|uint16|float64)

Three scalars are returned when this function is fed discrete RGB values. The types match the input pixel values

bob.ip.color.yuv_to_rgb()
  • yuv_to_rgb(input, output) -> output

  • yuv_to_rgb(y, u, v) -> r, g, b

Converts an YUV color-coded pixel or a full array (image) to RGB

This function converts an YUV (Y’CbCr) array or color-coded pixel using the CCIR 601 (Kb = 0.114, Kr = 0.299) norm (http://www.fourcc.org/fccyvrgb.php) to RGB.

The input is expected to be either an array or scalars. If you input an array, it is expected to assume the shape (3, height, width), representing an image encoded in YUV, in this order, with the specified height and width. The output array may be optionally provided. In such a case, it should be a 3D array with the same dimensions as the input, and have have the same data type. If an output array is not provided, one will be allocated internally. In any case, the output array is always returned.

If the input is of scalar type, this method will return the YUV version for a pixel with the 3 discrete values for red, green and blue. The input in this case should consist of 3 scalars defining the discrete values of Y, U and V.

Note

If you provide python scalars, then you should provide 3 values that share the same scalar type. Type mixing will raise a TypeError exception.

Note

This method only supports arrays and scalars of the following data types:

  • numpy.uint8

  • numpy.uint16

  • numpy.float64 (or the native python float)

To create an object with a scalar type that will be accepted by this

method, use a construction like the following:

>> import numpy
>> r = numpy.uint8(32)

Parameters:

input : array_like (uint8|uint16|float64, 3D)

Input array containing an image with the shape (3, height, width)

output : array (uint8|uint16|float64, 2D), optional

Output array - if provided, should have matching data type to input. The shape should match the input shape

y, u, v : scalar (uint8|uint16|float64)

Discrete pixel values for Y, U (Cb) and V (Cr) channels

Returns:

output : array (uint8|uint16|float64, 2D)

The output array is returned by the function. If one was not provided, a new one is allocated internally

r, g, b : scalar (uint8|uint16|float64)

Three scalars are returned when this function is fed discrete YUV values. The types match the input pixel values