# Determining colour from

1. Nov 7, 2012

### Ashiataka

Suppose I have a picture of a flame, or some other blackish-body like emitter, and I can see that the RGB value of a part of the flame is [106, 216, 177]. How would I go about determining the temperature of this?

I'm sure you'd use Wien's law etc, but I can't see how to get from the RGB value to the frequency.

Thank you.

2. Nov 7, 2012

### Drakkith

Staff Emeritus
I don't think you can. You would probably need a spectrograph. The problem is that each color has overlap from each other color along with different quantum efficiency, which is how many photons the sensor records compared to how many photons there originally were. Also, each color is recording a large range of wavelengths within it's range, not all of which are equally captured by the sensor.
If you knew the QE of your sensor, and were able to take very good calibration and test frames you MIGHT be able to get an approximation, but I don't know how accurate it would be. Perhaps a bit better than using your eyeball and saying "It looks deep red, so it's X temperature".

3. Nov 7, 2012

4. Nov 8, 2012

### sophiecentaur

I would approach this in a very practical way. I think you can rely on the RGB values from a colour camera to be fairly consistent if you have consistent exposure. Needless to say, you would need to be shooting 'RAW' to avoid any auto correction in your camera.
You could take spot readings of known 'hot objects' like the sun and photographic lamps, that have a tight colour temperature spec as long as you give them the right voltage. They are obtainable from several suppliers, I believe.

Alternatively, if you had access to a spectrometer, you could measure the spectrum from a tungsten lamp at different temperatures and use that to determine those temperatures. At the same time, you could record RGB values from your colour sensor. This would calibrate the camera for you.

Do you mean peak frequency / wavelength at a given temperature?

5. Nov 9, 2012

### Drakkith

Staff Emeritus
You can make a simple spectrograph using your camera and a prism. I'm sure you could find the details online somewhere.

6. Nov 9, 2012

### sophiecentaur

Unless you have a single wide-band detector, I don't see how you can produce a valid spectrogram (as opposed to a spectrograph, which would just be a 'picture' of the spectrum?) I suppose that you could get an idea of the sensitivity graphs of the three sensors if the spectrum of the incident light were already known (e.g. sunlight). But your idea also involves at least a "poor man's" spectrometer which would involve significant effort, I think.

I guess the characteristics of the three sensors in the camera could be obtained from the manufacturer and that could help. The problem lies with the limited info from three ( RGB ) signals, I think, and I reckon you would need some know light sources to that you could calibrate the system before you could get valid results. The software inside cameras does calculate its own version of the colour temperature of a scene, when you are working with RAW format. I guess it depends upon the accuracy that's required in the OP.

7. Nov 9, 2012

### Drakkith

Staff Emeritus
Last edited by a moderator: May 6, 2017
8. Nov 9, 2012

### sophiecentaur

Actually, that post (no. 3) (thanks for that, collinsmark) gives all you need to get from RGB values to a fair estimate of colour temperature. Of course, it assumes that the camera gives you correct RGB values out and that there's no jiggery pokery inside it.

Last edited by a moderator: May 6, 2017
9. Nov 9, 2012

### K^2

3 readings are enough to establish temperature assuming perfect black body. It would help greatly, however, to know the response spectra of the RGB pixels.

I have some code I wrote a few years ago that generates an RGB triple based on temperature. It's not exactly the same thing, because I was basing the values on RGB output frequencies and human eye response, so camera RGB values might not be exactly right. If you just need an estimate, however, this could work. All you'd need to do is sweep through temperatures and look for T that gives you the best fit, after brightness adjustment, to the three values you have.

Unfortunately, I haven't kept a great track of all my sources for the formulae. These could have been of greater use for you.

Edit: Specific values you provided, by the way, cannot correspond to a black body radiation of a flame. If you didn't just make these up, you cannot treat that flame as a black body.

Last edited: Nov 9, 2012
10. Nov 10, 2012

### sophiecentaur

Assuming the readings are genuine, I wonder which is more likely - the flame isn't black body or the Camera software has manipulated the RGB values? I suppose that some traces of a metal in the flame could be colouring it (as in 'flame tests').
How far from black body are those values? Could it be affected by background lighting? We don't know about the actual measurement setup.

It's just possible that our enthusiastic responses have manged to scare Ashiataka off! We haven't heard from him / her for a while. Come baaaaack!

11. Nov 10, 2012

### K^2

Very far. Temperatures you can get from a flame would correspond to colors red to white. Sun = 5700K. [106, 216, 177] is teal. Even assuming an error due to camera, we are talking about something in the 10kK+ range.