White balance with reference illuminants
AssigneeRingo Ai, Inc.
InventorsJay Hurley, Matthew D. Weaver, Jeffrey Saake
Life of this patent
Estimating the term…
Abstract
Introduced here are computer programs and associated computer-implemented techniques for achieving high-fidelity color reproduction in the absence of any known reflectance spectrums. That is, high-fidelity color reproduction can be achieved without portable references, such as gray cards and color checkers. To accomplish this, a new reference spectrum—the “reference illuminant spectrum”—is introduced into scenes to be imaged by image sensors. The reference illuminant spectrum is created by a multi-channel light source whose spectral properties are known.
Claims10
A method comprising:
- receiving input that is indicative of a request to image a scene using a Red-Green-Blue (RGB) image sensor of an electronic device;
- causing
- (a) a first image of a scene to be captured by the RGB image sensor, with the electronic device performing an automatic white balance on the first image,
- (b) a second image of the scene to be captured by the RGB image sensor, with the electronic device performing a fixed white balance on the second image, and
- (c) a first series of images of the scene to be captured by the RGB image sensor while the scene is differentially illuminated, with each image in the first series of images corresponding to a different illuminant spectrum;
- creating a second series of images by subtracting red, green, and blue values of each pixel in the second image from red, green, and blue values of a corresponding pixel from each image in the first series of images;
- converting the second series of images into a CIELAB color space so that each pixel is represented by a series of a* values and a series of b* values;
- converting the first image into the CIELAB color space so that each pixel is represented as an a* value and a b* value;
- forming, for each of multiple pixels in the first image,
- (i) a first linear equation based on a corresponding a* value from the converted first image and a corresponding series of a* values from the converted second series of images, and
- (ii) a second linear equation based on a corresponding b* value from the converted first image and a corresponding series of b* values from the converted second series of images;
- performing, for each of the multiple pixels in the first image, a least squares optimization on the first and second linear equations to produce a vector of coefficients, such that multiple vectors of coefficients are produced for the multiple pixels;
- and
- populating the multiple vectors of coefficients into a data structure.
A non-transitory medium with instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
- receiving input that is indicative of a request to image a scene using a Red-Green-Blue (RGB) image sensor of an electronic device;
- causing
- (a) a first image of a scene to be captured by the RGB image sensor, with the electronic device performing an automatic white balance on the first image,
- (b) a second image of the scene to be captured by the RGB image sensor, with the electronic device performing a fixed white balance on the second image, and
- (c) a series of images of the scene to be captured by the RGB image sensor while the scene is differentially illuminated, with each image in the first series of images corresponding to a different illuminant spectrum;
- and
- computing a matrix, with which the processor is able to alter red values, green values, and/or blue values for a given image to more accurately represent color, by—
- creating a second series of images by subtracting the red, green, and blue values of each pixel in the second image from the red, green, and blue values of a corresponding pixel from each image in the series of images,
- converting the second series of images into a CIELAB color space so that each pixel is represented by a series of a* values and a series of b* values,
- converting the first image into the CIELAB color space so that each pixel is represented as an a* value and a b* value, forming, for each of multiple pixels in the first image,
- (i) a first equation based on a corresponding a* value from the converted first image and a corresponding series of a* values from the converted second series of images, and
- (ii) a second equation based on a corresponding b* value from the converted first image and a corresponding series of b* values from the converted second series of images,
- optimizing, for each of the multiple pixels in the first image, the first and second equations to produce a vector of coefficients, such that multiple vectors of coefficients are produced for the multiple pixels, and
- populating the multiple vectors of coefficients into the matrix.
Dependencies are inferred from the claim text.