注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

dp: 生活的脚步,进步的点滴...

Cam、DSP、FPGA、PM、Life、More ...

 
 
 

日志

 
 

how to calculate dominant wavelength ?  

2015-01-20 10:19:43|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
I'd like to thank all those who helped me with mathematical information 
(and in some cases, sample code) for calculating the dominant 
wavelength and excitation purity of a color sample. As a service to 
other members of CVNet, I'm posting this information here. Please also 
see my note at the end of this message.

 From Hoover Chan:

My guess is to do a curve fit to the CIE spectral locus and solve the 
simultaneous equations that result. By the nature of this approach, 
it'll have to be an approximation but at least it would have an 
analytic solution.

 From Jeff Mulligan, NASA:

Here is what I would do:  for any wavelength, you can compute its x,y 
coordinates on the spectrum locus.  Together with the white point, it 
defines a line in the chromaticity diagram.  You can compute the 
distance from the point in question to this line.  Use your favorite 
optimization routine to vary lambda to minimize this distance.  Of 
course, there will often be two solutions, the correct one is the one 
where the point in question falls between the spectrum point and the 
white point.

 From R. Tudela, University of Barcelona:

  In relation to your question "How do you calculate the dominant 
wavelength and excitation purity?" The answer is the following:

  We start with a table with "n" values of the coordinates for each 
wavelength. These coordinates will be x[i], y[i] and the wavelength 
lambda[i], where i=1 for the red and i=n for the blue. Xc,yc will be 
the coordinates of the problem colour. We transform these coordinates 
into polar coordinates centred in the E illuminant. Each value of 
lambda[i] gives an angle alpha[i] = atan ((y[i] - 0.333) /(x[i] - 
0.333)) And the same for the problem colour, alphac = atan ((yc - 
0.333)/(xc - 0.333)) If alphac is between alpha[1] and alpha[n] we find 
the value of i which makes alphac to be between alpha[i] and 
alpha[i+1]. The dominant wavelength of the problem colour will be the 
interpolated value between lambda[i] and lambda[i+1]. And the 
coordinates of the problem colour are interpolated in a similar way. 
Then the excitation purity is the quotient between the distances to the 
polar origin (point E) of the problem colour and the distance of the 
interpolated wavelength. These distances are calculated by doing the 
operation sqrt ((y - 0.333) * (y - 0.333) + (x - 0.333) * (x - 0.333)) 
When alphac is not in the range of the pure wavelengths (Magenta zone), 
we rest pi radians to the angle and do the same as for the dominant 
wavelength. To calculate the excitation purity we do the quotient 
between its distance to the point E and the distance to the origin of 
the intersection of the line of the angle alphac with the line that 
joins the points (x[1],y[1]) and (x[n],y[n]).

 From János Schanda:

The method ... is the following: it defines a straight line using the 
co-ordinates of the source and the test sample chromaticity 
co-ordinates, checks whether the test is purple or not, and then uses 
the chromaticity coordinates of the monochromatic stimuli and seeks the 
crossing point between the line defined first and the spectral locus or 
purple line. There is a little trickiness at the wavelength when the 
dominant wavelength line is just perpendicular. But it is not so 
difficult to figure it out how to handle it. A student of mine recently 
wrote it also for an Exel sheet, but I do not have the sheet at hand.

 From Osvaldo da Pos:

I made an Excel page to make the calculations of the excitation purity, 
but one needs anyway to input some data derived from looking at the CIE 
chromaticity diagram. I would be interested in knowing whether anybody 
made a better procedure.

 From Jim Fulton, Director of Research, VISION CONCEPTS:

Your fundamental problem is the CIE (1931) diagram is not conformal (or 
even orthogonal).  Your equations would need to be written to 
accommodate this fact.  A better approach would be to convert your x, y 
values to u, v or u',v' values.  The unprimed values are associated 
with the CIE(1960) uniform color-scale system (UCS). The primed values 
are associated with the newer CIE(1976) uniform color-scale system 
(UCS).  Both of these are empirical estimates of the performance of the 
human eye expressed in a nearly linear and orthogonal coordinate space. 
  See Wyszecki & Stiles (1982) sections 3.3.9 and 6.4.

Your more fundamental problem is that the CIE diagrams are all based on 
an additive color theory of vision.  In fact, electrophysiology shows 
that luminance (achromatic ) vision is based on the summation of the 
natural LOGARITHMS of the spectral sensations generated in the retina.  
The exponent of 1/3 found in the formulas of the UCS conversion from 
the CIE (1931)
diagram is an approximation to the natural logarithm of the same ratios.

Physiologically, the chrominance information is processed in three (two 
in a simplified analysis omitting the deep blue and purples) DIFFERENCE 
channels. The CIE approach does not utilize any difference signals.

These points are developed in Section 9.1.3 of my short published book, 
Biological Vision: A 21st Century Tutorial.  The particulars concerning 
the book are given following my signature block.

They are also discussed more broadly in my manuscript from which the 
book was drawn.  The part of interest to you is Section 17.3.5 in 
www.4colorvision.com/pdf/17Performance1b.htm   In particular, Figure 
17.3.5-6 highlights the lack of conformalism in the CIE (1931) 
diagrams. The straight lines deviate significantly from the isoclines 
of physiological vision. A set of linear equations can only be used to 
represent the core of the diagram, for excitation purities of less than 
about 20%.

www.4colorvision.com/files/colorabnormal.htm illustrates these 
deviations in color as best as one can on a low quality medium like the 
internet.  The figures on that page separate the colors  based on 
physiology.

The CIE UCS diagrams are much better and approach conformality.  In 
briefer form, you might want to look at 
www.4colorvision.com/files/perform.htm   It contains several calls of 
interest.

If you were willing to use a lookup table to convert x,y into Munsell 
space (the tables are available in the back of Wyszecki & Stiles, 1982) 
and then do your calculations in that space (which is conformal) 
followed by translating back to x,y space, you would get the correct 
answer within a few percent for any purity and dominant wavelength 
(following the isoclines discussed earlier).

However, Munsell space requires a knowledge of the luminance intensity 
in order to define the maximum purity.  The CIE diagrams, other than 
LAB & LUV do not contain a luminance level or require a nominal 
luminance level. While in Munsell space, you could also determine the 
two wavelengths required to generate the match.  The match would be 
confirmable by the human observer.  These wavelengths would correspond 
roughly to the values in Hering Space.  The theoretical colors in 
Hering space are violet-yellow and cyan- (Hering) red.  Not blue-yellow 
and green-red.

I appreciate the level of understanding you are trying to teach.  
However, if you find a really inquisitive student, please steer him to 
my site.  It will take years before the old CIE diagrams are dropped 
from textbooks.

My additional notes:

The calculations were used for a simple program to demonstrate color 
definition by RGB or hue, saturation and brightness, color mixing, and 
complementary colors.  The program was used in my classroom to 
demonstrate these concepts interactively on the CIE diagram.  The 
calculations were therefore kept simple and only approximate for the 
sake of program speed so interactivity wouldn't be compromised.  I am 
open-sourcing this program and making it available at no cost to the 
optometry and vision science community. It presently runs on Mac OS X 
only, but I am considering a Windows version too since the only 
Mac-specific feature is the use of ColorSync to retrieve the LCD 
monitor gamut. The compiled program can be found at:
http://homepage.mac.com/drsteinman/. Source code can be obtained from 
me by emailing me at the address below.

Regards,
Scott

Scott B. Steinman, O.D., Ph.D., F.A.A.O.
Professor, Southern College of Optometry
Co-Chair, ASCO Informatics SIG
Chair, Open Source Purely-Graphical Programming Language Initiative 
(www.ospgli.org)
Author, "Visual Programming with Prograph CPX", Manning/Prentice-Hall, 
1995 (www.manning.com/steinman).
Author, "Foundations of Binocular Vision", McGraw-Hill, 2000 
(books.mcgraw-hill.com/cgi-bin/pbg/0838526705.html)
Certified non-Microsoft Solutions Provider

1245 Madison Avenue
Memphis, TN 38104-2222
steinman at sco.edu
  评论这张
 
阅读(550)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016