ImageDev

ColorSpaceConversion

Converts a color image from a color space to another one.

Access to parameter description

For an introduction to image filters: section Color Transforms.

The ColorSpaceConversion algorithm performs conversion between two color image formats or spaces. The color spaces supported are RGB and HSL.

RGB to HSL Conversion

Considering $$ C_1=\frac{\sqrt{3}}{2}\times (R-G) ~\mbox{and}~ C_2=B-\frac{1}{2}\times (R+G) $$ the HSL components are:

Note that an image cannot be transformed into a color space to which it already belongs. By default, ImageDev considers color images belonging to RGB color space.
Thus, converting a color image to the RGB space, without having performed a conversion to HSL before, raises an exception.

See also

Function Syntax

This function returns the outputColorImage output parameter.
// Function prototype.
std::shared_ptr< iolink::ImageView >
colorSpaceConversion( std::shared_ptr< iolink::ImageView > inputColorImage,
                      ColorSpaceConversion::ColorSpace colorSpace,
                      std::shared_ptr< iolink::ImageView > outputColorImage = NULL );
This function returns the outputColorImage output parameter.
// Function prototype.
color_space_conversion( input_color_image, color_space = ColorSpaceConversion.ColorSpace.HSL, output_color_image = None )
This function returns the outputColorImage output parameter.
// Function prototype.
public static IOLink.ImageView
ColorSpaceConversion( IOLink.ImageView inputColorImage,
                      ColorSpaceConversion.ColorSpace colorSpace = ImageDev.ColorSpaceConversion.ColorSpace.HSL,
                      IOLink.ImageView outputColorImage = null );

Class Syntax

Parameters

Class Name ColorSpaceConversion

Parameter Name Description Type Supported Values Default Value
input
inputColorImage
The input color image. Image Multispectral nullptr
input
colorSpace
The output color space.
RGB The standard RGB (Red, Green, Blue) color space.
HSL The HSL (Hue, Saturation, Luminance) color space.
Enumeration HSL
output
outputColorImage
The output color image. Its dimensions and type are forced to the same values as the input. Image nullptr

Object Examples

std::shared_ptr< iolink::ImageView > ateneub = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "ateneub.jpg" );

ColorSpaceConversion colorSpaceConversionAlgo;
colorSpaceConversionAlgo.setInputColorImage( ateneub );
colorSpaceConversionAlgo.setColorSpace( ColorSpaceConversion::ColorSpace::HSL );
colorSpaceConversionAlgo.execute();

std::cout << "outputColorImage:" << colorSpaceConversionAlgo.outputColorImage()->toString();
ateneub = ioformat.read_image(imagedev_data.get_image_path("ateneub.jpg"))

color_space_conversion_algo = imagedev.ColorSpaceConversion()
color_space_conversion_algo.input_color_image = ateneub
color_space_conversion_algo.color_space = imagedev.ColorSpaceConversion.HSL
color_space_conversion_algo.execute()

print( "output_color_image:", str( color_space_conversion_algo.output_color_image ) );
ImageView ateneub = ViewIO.ReadImage( @"Data/images/ateneub.jpg" );

ColorSpaceConversion colorSpaceConversionAlgo = new ColorSpaceConversion
{
    inputColorImage = ateneub,
    colorSpace = ColorSpaceConversion.ColorSpace.HSL
};
colorSpaceConversionAlgo.Execute();

Console.WriteLine( "outputColorImage:" + colorSpaceConversionAlgo.outputColorImage.ToString() );

Function Examples

std::shared_ptr< iolink::ImageView > ateneub = ioformat::readImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "ateneub.jpg" );

auto result = colorSpaceConversion( ateneub, ColorSpaceConversion::ColorSpace::HSL );

std::cout << "outputColorImage:" << result->toString();
ateneub = ioformat.read_image(imagedev_data.get_image_path("ateneub.jpg"))

result = imagedev.color_space_conversion( ateneub, imagedev.ColorSpaceConversion.HSL )

print( "output_color_image:", str( result ) );
ImageView ateneub = ViewIO.ReadImage( @"Data/images/ateneub.jpg" );

IOLink.ImageView result = Processing.ColorSpaceConversion( ateneub, ColorSpaceConversion.ColorSpace.HSL );

Console.WriteLine( "outputColorImage:" + result.ToString() );