Module ij
Package ij.process

Class ColorSpaceConverter

java.lang.Object
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 Details

    • 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 Details

    • 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 Details

    • 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.