## Surface of human vision "gamut"?

Discuss digital image processing techniques and algorithms. We encourage its application to ImageMagick but you can discuss any software solutions here.
tcrass
Posts: 38
Joined: 2009-11-22T11:12:52-07:00
Authentication code: 8675309

### Surface of human vision "gamut"?

Hi there,

it might be a bit off-topic, but I'm not sure where else to ask... I wonder if anyone knows how obtain (calculate? look up?) the (L*a*b* or XYZ) coordinates of the surface of the solid representing the whole range of colors visible to the human eye.

-- Torsten

fmw42
Posts: 26383
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

### Re: Surface of human vision "gamut"?

Did you try a Google search?

tcrass
Posts: 38
Joined: 2009-11-22T11:12:52-07:00
Authentication code: 8675309

### Re: Surface of human vision "gamut"?

Fred,
fmw42 wrote:Did you try a Google search?
you may not believe it, but yes, I spent days googling on this issue. And yes, I found tons of sites presenting the equations for converting coordinates between various color spaces, but I found very little (and nothing explicit) about the topic I described in my original posting.

Perhaps I wasn't clear enough regarding what I'm looking for. So I'll try again: I'd like to construct (and finally draw) the surface of the solid body that represents in a given colorspace the set of all colors visible to the human eye. In xyY, this would be something like the horse-shoe expanded into the Y dimension (while getting slimmer with increasing Y), and in L*a*b* it supposedly looks like http://www.brucelindbloom.com/index.htm ... splay.html

I understand the exact shape of the solid in question is determined by experimental data (keyword: standard observer) -- hence I recon there won't be a simple formula that would allow me to, say, insert the two angular components of a polar coordinate system and return the distance of the surfac point from the system's origin?

Anyway, I'd be grateful if someone could point me into the right direction. And since the whole plethora of color space conversion equations is readily available from the Web, a solution in any color space would be fine.

Thanks again --

-- Torsten

fmw42
Posts: 26383
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

### Re: Surface of human vision "gamut"?

I have no ideas to help much. I would hope that there would be some medical data on that. You might be able to plot that. ImageJ has a nice 3D plot function. Perhaps you might contact Bruce Lindbloom and ask him if he has any references or suggestions.

tcrass
Posts: 38
Joined: 2009-11-22T11:12:52-07:00
Authentication code: 8675309

### Re: Surface of human vision "gamut"?

Fred,
fmw42 wrote:I have no ideas to help much. I would hope that there would be some medical data on that.
yeah, I guess I could work myself through the original 1930s publications... However, I would prefer if I didn't have to. (Well, I've already found some Excel files obviously containing something like the standard observer's cones' spectral sensitivity data and equations calculating color space coordinates from spectral data, but I haven't completely understood yet how to make use of them.)
fmw42 wrote:You might be able to plot that. ImageJ has a nice 3D plot function.
The technical part poses no problem, I've already set up everything using JavaScript and X3D.
fmw42 wrote:Perhaps you might contact Bruce Lindbloom and ask him if he has any references or suggestions.
That occured to me, too. I'll contact him, and I'll post here if I get a reply from him.

Apart from that: any further suggestions welcome!

Regards --

-- Torsten

snibgo
Posts: 13034
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

### Re: Surface of human vision "gamut"?

snibgo's IM pages: im.snibgo.com

tcrass
Posts: 38
Joined: 2009-11-22T11:12:52-07:00
Authentication code: 8675309

### Re: Surface of human vision "gamut"?

Snibgo,
snibgo wrote:Try the CVRL database: http://cvrl.ioo.ucl.ac.uk/index.htm
thanks for the link, seems to be a rich resource of experimental data. However, nothing there that would help constructing the human vision "gamut" (maybe one should rather call it the "human vision device profile"?). Or maybe I'm just too stupid to figure out how.

I've also contacted Bruce Lindbloom, but didn't get any reply so far.

Regards --

-- Torsten

snibgo
Posts: 13034
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

### Re: Surface of human vision "gamut"?

I know too little about how human colour vision is measured, but perhaps you are looking for "MacAdam limits". See the animation half way down http://en.wikipedia.org/wiki/Gamut .

A search on this phrase turns up http://rua.ua.es/dspace/bitstream/10045 ... 1_1515.pdf , an academic paper with an algorithm for calculating the limits.
snibgo's IM pages: im.snibgo.com

tcrass
Posts: 38
Joined: 2009-11-22T11:12:52-07:00
Authentication code: 8675309

### Re: Surface of human vision "gamut"?

Snibgo,
snibgo wrote:I know too little about how human colour vision is measured, but perhaps you are looking for "MacAdam limits". See the animation half way down http://en.wikipedia.org/wiki/Gamut .

A search on this phrase turns up http://rua.ua.es/dspace/bitstream/10045 ... 1_1515.pdf , an academic paper with an algorithm for calculating the limits.
thank you *so much*! "MacAdam limits" obviously was the term I was missing, preventing me from finding papers like the one you mentioned. (I usually prefer to search the "English Web" since it just has the most content to offer, but I remember that -- for whatever reason -- I looked up "Gamut" in the German Wikipedia only. And there's not even a trace of MacAdam in the German version of the "Gamut" article...)

Thanks again --

-- Torsten

tcrass
Posts: 38
Joined: 2009-11-22T11:12:52-07:00
Authentication code: 8675309

### Re: Surface of human vision "gamut"?

Hi everyone,

just wanted to let you know that I finally got a kind and exhaustive reply from Bruce, and he gave me permission to quote him, too! So here's how he did the calculations for the color solid shown at http://www.brucelindbloom.com/index.htm ... splay.html :
3D gamut extent surfaces are most easily computed by using only those
colors found on the surface (i.e. exclude interior colors). For
theoretical RGB color spaces, these are the colors where at least one of
the red, green, blue components is either 0.0 or 1.0. For the Lab gamut,
the colors on the surface must be computed spectrally. The spectra of the
surface colors are those obtained by passing square pulses through the
conversion from spectrum to XYZ (and possibly further calculations, such
as XYZ-to-Lab). To explain the spectral pulses, here is a simple
explanation using only 10 spectral samples across the visible spectrum.
First use a single pulse:

1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
Etc.
0 0 0 0 0 0 0 0 0 1

The use a double, with wrap-around:

1 1 0 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0
0 0 1 1 0 0 0 0 0 0
Etc.
0 0 0 0 0 0 0 0 1 1
1 0 0 0 0 0 0 0 0 1

The use a triple:
1 1 1 0 0 0 0 0 0 0
0 1 1 1 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0
Etc.
0 0 0 0 0 0 0 1 1 1
1 0 0 0 0 0 0 0 1 1
1 1 0 0 0 0 0 0 0 1

And so on. Here is the last pulse:
1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1 1 1
Etc.
1 1 1 1 1 1 1 1 0 1

In practice, you will need to use more than 10 samples. I used 0.25 nm
increments in my illustrations, which means the 10 changes to 1480. You
will get lots of Lab points from this, and they will not be evenly spaced.
The points may be joined together to make a polyhedron of triangles, which
is the mathematical description of the surface.
This does indeed point into the same direction as the "optimal colors" mentioned in e.g. http://rua.ua.es/dspace/bitstream/10045 ... 1_1515.pdf and seems not too hard to implement, in particular with the help of the experimental data (color matching functions etc.) available from e.g. http://cvrl.ioo.ucl.ac.uk/index.htm

I hope you now feel es enlightened as I do!

Best regards --

-- Torsten

snibgo
Posts: 13034
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

### Re: Surface of human vision "gamut"?

Interesting. Thanks for posting Bruce's response.

He seems to confirm a thought of mine: in sRGB space, your colours are the ones on the surface of the cube, ie all the colours where any channel is 0.0 or 1.0. Convert all these colours to L*a*b* or whatever you want, and you have your answer.

But don't quote me on this. It's just an idea, and may not be what you want.
snibgo's IM pages: im.snibgo.com

tcrass
Posts: 38
Joined: 2009-11-22T11:12:52-07:00
Authentication code: 8675309

### Re: Surface of human vision "gamut"?

Snibgo,
snibgo wrote: He seems to confirm a thought of mine: in sRGB space, your colours are the ones on the surface of the cube, ie all the colours where any channel is 0.0 or 1.0. Convert all these colours to L*a*b* or whatever you want, and you have your answer.

But don't quote me on this. It's just an idea, and may not be what you want.
no, that's definitely not what I want -- since sRGB encompasses only a fraction of all colors visible to the human eye. So the solid emerging from the calculation you suggested will be located completely inside the solid I'm talking about and the surface of which can be calculated by, well, let's call it "Bruce's algorithm". And the pulses Bruce was talking about refer, I understand, to spectral intensity distributions, or intensity-versus-wavelength diagrams, which must first be converted to XYZ using the corresponding (and experimentally determined) color matching functions. From XYZ, those colors may be converted to any other color space of your liking.

Anyway, bed time for me.

Regards --

-- Torsten

snibgo
Posts: 13034
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

### Re: Surface of human vision "gamut"?

Ah, yes, of course my idea was a bad one, 'cos sRGB isn't the entire visible gamut. I was having brain-fade. Sorry about that.
snibgo's IM pages: im.snibgo.com