public class ColorHsv
extends java.lang.Object
Color conversion between RGB and HSV color spaces. HSV stands for Hue-Saturation-Value. "Hue" has a range of [0,2*PI] and "Saturation" has a range of [0,1], the two together represent the color. While "Value" has the same range as the input pixels and represents how light/dark the color is. Original algorithm taken from [1] and modified slightly.
NOTE: The hue is represented in radians instead of degrees, as is often done.
NOTE: Hue will be set to NaN if it is undefined. It is undefined when chroma is zero, which happens when the input
color is a pure gray (e.g. same value across all color bands).
RGB to HSV:
min = min(r,g,b) max = max(r,g,b) delta = max-min // this is the chroma value = max if( max != 0 ) saturation = delta/max else saturation = 0; hue = NaN if( r == max ) hue = (g-b)/delta else if( g == max ) hue = 2 + (b-r)/delta else hue = 4 + (r-g)/delta hue *= 60.0*PI/180.0 if( hue < 0 ) hue += 2.0*PI
[1] http://www.cs.rit.edu/~ncs/color/t_convert.html
| Modifier and Type | Field and Description |
|---|---|
static float |
d60_F32 |
static double |
d60_F64 |
static float |
PI2_F32 |
static double |
PI2_F64 |
| Constructor and Description |
|---|
ColorHsv() |
| Modifier and Type | Method and Description |
|---|---|
static void |
hsvToRgb_F32(MultiSpectral<ImageFloat32> hsv,
MultiSpectral<ImageFloat32> rgb)
Converts an image from HSV into RGB.
|
static void |
hsvToRgb(double h,
double s,
double v,
double[] rgb)
Convert HSV color into RGB color
|
static void |
hsvToRgb(float h,
float s,
float v,
float[] rgb)
Convert HSV color into RGB color
|
static void |
rgbToHsv_F32(MultiSpectral<ImageFloat32> rgb,
MultiSpectral<ImageFloat32> hsv)
Converts an image from RGB into HSV.
|
static void |
rgbToHsv(double r,
double g,
double b,
double[] hsv)
Convert RGB color into HSV color
|
static void |
rgbToHsv(float r,
float g,
float b,
float[] hsv)
Convert RGB color into HSV color
|
public static final double d60_F64
public static final float d60_F32
public static final double PI2_F64
public static final float PI2_F32
public static void hsvToRgb(double h,
double s,
double v,
double[] rgb)
h - Hue [0,2*PI]s - Saturation [0,1]v - Valuergb - (Output) RGB valuepublic static void hsvToRgb(float h,
float s,
float v,
float[] rgb)
h - Hue [0,2*PI]s - Saturation [0,1]v - Valuergb - (Output) RGB valuepublic static void rgbToHsv(double r,
double g,
double b,
double[] hsv)
r - redg - greenb - bluehsv - (Output) HSV value.public static void rgbToHsv(float r,
float g,
float b,
float[] hsv)
r - redg - greenb - bluehsv - (Output) HSV value.public static void hsvToRgb_F32(MultiSpectral<ImageFloat32> hsv, MultiSpectral<ImageFloat32> rgb)
hsv - (Input) Image in HSV formatrgb - (Output) Image in RGB formatpublic static void rgbToHsv_F32(MultiSpectral<ImageFloat32> rgb, MultiSpectral<ImageFloat32> hsv)
rgb - (Input) Image in RGB formathsv - (Output) Image in HSV format