ij.process
Class ColorSpaceConverter

java.lang.Object
  extended by ij.process.ColorSpaceConverter

public class ColorSpaceConverter
extends Object

ColorSpaceConverter

Author:
dvs, hlp Created Jan 15, 2004 Version 3 posted on ImageJ Mar 12, 2006 by Duane Schwartzwald vonschwartzwalder at mac.com Version 4 created Feb. 27, 2007 by Harry Parker, harrylparker at yahoo dot com, corrects RGB to XYZ (and LAB) conversion.

Field Summary
 double[] chromaD50
          reference white in xyY coordinates
 double[] chromaD55
           
 double[] chromaD65
           
 double[] chromaD75
           
 double[] chromaWhitePoint
           
 double[] D50
          reference white in XYZ coordinates
 double[] D55
           
 double[] D65
           
 double[] D75
           
 double[][] M
          sRGB to XYZ conversion matrix
 double[][] Mi
          XYZ to sRGB conversion matrix
 double[] whitePoint
           
 
Constructor Summary
ColorSpaceConverter()
          Default constructor; uses D65 for the white point
ColorSpaceConverter(String white)
          Constructor for setting a non-default white point
 
Method Summary
 int[] HSBtoRGB(double[] HSB)
           
 int[] HSBtoRGB(double H, double S, double B)
           
 int[] LABtoRGB(double[] Lab)
           
 int[] LABtoRGB(double L, double a, double b)
          Convert LAB to RGB.
 ImagePlus LabToRGB(ImagePlus img)
          Converts a Lab stack into an RGB image.
 double[] LABtoXYZ(double[] Lab)
          Convert LAB to XYZ.
 double[] LABtoXYZ(double L, double a, double b)
          Convert LAB to XYZ.
 double[] RGBtoHSB(int[] RGB)
           
 double[] RGBtoHSB(int R, int G, int B)
           
 ImagePlus RGBToLab(ImagePlus img)
          Converts an RGB image into a Lab stack.
 double[] RGBtoLAB(int rgb)
           
 double[] RGBtoLAB(int[] RGB)
           
 double[] RGBtoXYZ(int[] RGB)
          Convert RGB to XYZ
 double[] RGBtoXYZ(int R, int G, int B)
          Convert RGB to XYZ
 double[] xyYtoXYZ(double[] xyY)
           
 double[] xyYtoXYZ(double x, double y, double Y)
           
 double[] XYZtoLAB(double[] XYZ)
          Convert XYZ to LAB.
 double[] XYZtoLAB(double X, double Y, double Z)
          Convert XYZ to LAB.
 int[] XYZtoRGB(double[] XYZ)
          Convert XYZ to RGB
 int[] XYZtoRGB(double X, double Y, double Z)
          Convert XYZ to RGB.
 double[] XYZtoxyY(double[] XYZ)
           
 double[] XYZtoxyY(double X, double Y, double Z)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

D50

public double[] D50
reference white in XYZ coordinates


D55

public double[] D55

D65

public double[] D65

D75

public double[] D75

whitePoint

public double[] whitePoint

chromaD50

public double[] chromaD50
reference white in xyY coordinates


chromaD55

public double[] chromaD55

chromaD65

public double[] chromaD65

chromaD75

public double[] chromaD75

chromaWhitePoint

public double[] chromaWhitePoint

M

public double[][] M
sRGB to XYZ conversion matrix


Mi

public double[][] Mi
XYZ to sRGB conversion matrix

Constructor Detail

ColorSpaceConverter

public ColorSpaceConverter()
Default constructor; uses D65 for the white point


ColorSpaceConverter

public ColorSpaceConverter(String white)
Constructor for setting a non-default white point

Parameters:
white - "d50", "d55", "d65" or "d75"
Method Detail

HSBtoRGB

public int[] HSBtoRGB(double H,
                      double S,
                      double B)
Parameters:
H - Hue angle/360 (0..1)
S - Saturation (0..1)
B - Value (0..1)
Returns:
RGB values

HSBtoRGB

public int[] HSBtoRGB(double[] HSB)

LABtoRGB

public int[] LABtoRGB(double L,
                      double a,
                      double b)
Convert LAB to RGB.

Parameters:
L -
a -
b -
Returns:
RGB values

LABtoRGB

public int[] LABtoRGB(double[] Lab)
Parameters:
Lab -
Returns:
RGB values

LABtoXYZ

public double[] LABtoXYZ(double L,
                         double a,
                         double b)
Convert LAB to XYZ.

Parameters:
L -
a -
b -
Returns:
XYZ values

LABtoXYZ

public double[] LABtoXYZ(double[] Lab)
Convert LAB to XYZ.

Parameters:
Lab -
Returns:
XYZ values

RGBtoHSB

public double[] RGBtoHSB(int R,
                         int G,
                         int B)
Parameters:
R - Red in range 0..255
G - Green in range 0..255
B - Blue in range 0..255
Returns:
HSB values: H is 0..360 degrees / 360 (0..1), S is 0..1, B is 0..1

RGBtoHSB

public double[] RGBtoHSB(int[] RGB)

RGBtoLAB

public double[] RGBtoLAB(int rgb)
Parameters:
rgb - RGB value
Returns:
Lab values

RGBtoLAB

public double[] RGBtoLAB(int[] RGB)
Parameters:
RGB -
Returns:
Lab values

RGBtoXYZ

public double[] RGBtoXYZ(int R,
                         int G,
                         int B)
Convert RGB to XYZ

Parameters:
R -
G -
B -
Returns:
XYZ in double array.

RGBtoXYZ

public double[] RGBtoXYZ(int[] RGB)
Convert RGB to XYZ

Parameters:
RGB -
Returns:
XYZ in double array.

xyYtoXYZ

public double[] xyYtoXYZ(double x,
                         double y,
                         double Y)
Parameters:
x -
y -
Y -
Returns:
XYZ values

xyYtoXYZ

public double[] xyYtoXYZ(double[] xyY)
Parameters:
xyY -
Returns:
XYZ values

XYZtoLAB

public double[] XYZtoLAB(double X,
                         double Y,
                         double Z)
Convert XYZ to LAB.

Parameters:
X -
Y -
Z -
Returns:
Lab values

XYZtoLAB

public double[] XYZtoLAB(double[] XYZ)
Convert XYZ to LAB.

Parameters:
XYZ -
Returns:
Lab values

XYZtoRGB

public int[] XYZtoRGB(double X,
                      double Y,
                      double Z)
Convert XYZ to RGB.

Parameters:
X -
Y -
Z -
Returns:
RGB in int array.

XYZtoRGB

public int[] XYZtoRGB(double[] XYZ)
Convert XYZ to RGB

Parameters:
XYZ - in a double array.
Returns:
RGB in int array.

XYZtoxyY

public double[] XYZtoxyY(double X,
                         double Y,
                         double Z)
Parameters:
X -
Y -
Z -
Returns:
xyY values

XYZtoxyY

public double[] XYZtoxyY(double[] XYZ)
Parameters:
XYZ -
Returns:
xyY values

RGBToLab

public ImagePlus RGBToLab(ImagePlus img)
Converts an RGB image into a Lab stack.


LabToRGB

public ImagePlus LabToRGB(ImagePlus img)
Converts a Lab stack into an RGB image.



Copyright © 1997–2016 NIH. All rights reserved.