[OT] two question about color space.
I've put together a rough R port of that C code [*] in a package on r- forge: http://r-forge.r-project.org/plugins/scmsvn/viewcvs.php/pkg/spectral/?root=photonics http://r-forge.r-project.org/R/?group_id=160 ( package spectral, will be built overnight ) There is a lot of optimization and cleaning to do: it seems much slower than it should be, and the documentation is empty at the moment, but it reproduces the result for the black body radiation.
library(spectral)
data(wavelength)
data(cie_colour_match)
data(colourSystem)
test <- function(bbTemp=5000){
mxyz <- spectrum_to_xyz(specfun=bb_spectrum, bbTemp=bbTemp)
rgb <- xyz_to_rgb(colourSystem[3, ], mxyz)
norm_rgb(constrain_rgb(rgb))
}
temperatures <- seq(1000, 10000, by=500)
# temperatures <- seq(1000, 10000, length=300)
res <- abs(sapply(temperatures, test))
grid.newpage()
start <- seq(0.1, 0.9, length=dim(res)[2])
end <- start + mean(diff(start))
grid.segments(x0=start,x1=end, y0=0*start+0.5, y1=0*temperatures+0.5,
gp=gpar(col=rgb(res[1, ], res[2, ], res[3, ], alpha=1), lwd=10,
lineend=3))
Best wishes, baptiste [*] from http://www.fourmilab.ch/documents/specrend/
On 14 Mar 2009, at 12:33, baptiste auguie wrote:
Hi, For a good discussion of the link between colour and spectra I would suggest, http://www.fourmilab.ch/documents/specrend/ which provides an open-source C code to perform the conversion you ask for. I asked for some advice on how to wrap a R function around this code last week but sadly I didn't get anywhere. Do let me know if you succeed. (alternatively, one could port the implementation in pure R as the code is not too complicated or computationally demanding). Hope this helps, baptiste On 14 Mar 2009, at 12:09, Jinsong Zhao wrote:
Hi there, I try to plot visible light spectrum (380nm~780nm) with color corresponding to the specific wavelength. However, I don't find a function that could do this. Another question, it's possible to plot a color space chromaticity diagram like this: http://upload.wikimedia.org/wikipedia/commons/thumb/0/02/CIExy1931.svg/300px-CIExy1931.svg.png Thanks in advance! Jinsong
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
_____________________________ Baptiste Augui? School of Physics University of Exeter Stocker Road, Exeter, Devon, EX4 4QL, UK Phone: +44 1392 264187 http://newton.ex.ac.uk/research/emag ______________________________
_____________________________ Baptiste Augui? School of Physics University of Exeter Stocker Road, Exeter, Devon, EX4 4QL, UK Phone: +44 1392 264187 http://newton.ex.ac.uk/research/emag