Does anyone know how to convert a hyperspectral image into RGB using color spectral function of a digital camera.
Thank you for your help
Hector
Thank you for your answer. What I want to do is to apply a camera color sensitivity functions on multispectral images to retrieve the color images that would be captured by a device but I don't know how I can do.
Regards,
Hector
ImageAnalyst <imagea...@mailinator.com> wrote in message <9dcf3945-a082-4f94...@j2g2000vbo.googlegroups.com>...
Basically you multiple and integrate. See figure 21 on this page:
http://www.konicaminolta.com/instruments/knowledge/color/part2/06.html
You need to multiply the spectrum of your hyperspectral band times the
spectral responsivity of your sensor, then integrate to get the "gray
level" or "digitial number" for that color channel. Assume the
spectrum of your input band to be flat if you have no idea what it
is. So you'd have
sum over all wavelengths in your source image and sensor spectrum:
redChannelIntensity(wavelength) = sourceImageSpectrum(wavelength) .*
sensorsRedResponsivity(wavelength)
greenChannelIntensity(wavelength) = sourceImageSpectrum(wavelength) .*
sensorsGreenResponsivity(wavelength)
blueChannelIntensity(wavelength) = sourceImageSpectrum(wavelength) .*
sensorsBlueResponsivity(wavelength)
That will tell you what the RGB value for that one particular input
hyperspectral image would be. Note: You may get zero in some cases,
for example, normal visible light CCD sensors don't give a signal for
many wavelengths ranges (e.g. thermal IR, UV, gamma and x rays, etc.)
Then you can do it for another hyperspectral(s) band if you want.
Then, if you used more than one input image, you can add together all
the output RGB images in some kind of weighted fashion, depending on
what kind of effect you are trying to achieve (like I said in my first
message).
In the case where there is no signal (e.g. a thermal image), you can
just pretend. For example, you can assume a thermal image is the same
as what you'd get from a grayscale visible light image, as is almost
always done. Or you may take spectral band 1 of a satellite (e.g.
SPOT) and assign it to the red band, assign spectral band 3 to the
green band, and assign spectral band 7 to the blue band, and then
display it as a regular RGB image.
Well, that's enough tutorial for now. Hope that helped explain it
somewhat more.
-ImageAnalyst
Sorry for my late answer. I had difficulties to access internet.
Thank you very much for your detailed answer. I appreciate it. It was really a good tutorial.
Do you know where can I find CMFs of cameras?
ImageAnalyst <imagea...@mailinator.com> wrote in message <2ea9c7fd-bb36-4e4c...@a36g2000yqc.googlegroups.com>...
I'm sorry for my late reply. I had difficulties in accessing internet.
Thank you very much for your didactic tutorial. I really appreciate it.
Do you know where I can find CMFs of still cameras?
Regards,
Hector
ImageAnalyst <imagea...@mailinator.com> wrote in message <2ea9c7fd-bb36-4e4c...@a36g2000yqc.googlegroups.com>...
I tried what you explained about converting a multispectral image to RGB by using CIE-31 CMF. however, the image is too dark. What is wrong then?
Hector
;-)