I've recently started working on a graphics/SLAM project. We've encountered a problem that requires us to measure or infer the color / spectral reflectance (and ideally albedo) of points on objects in a cone-shaped field of view from ~1-10m away.

Currently, we're using an IR sensor to determine distance and angle, and we're also measuring reflectivity (over the wavelength of IR light that the sensor uses). We now need to determine color, but we're not able to use visible light emissions on the robot, which complicates things. As the only person the team with any physics knowledge, I've been assigned this particular problem, but I don't know enough to even hypothesize about solutions.

The key requirement is that we're hoping to be able to assign a color to every point; however, the color doesn't need to be very accurate.

I was thinking that maybe with the IR sensor we could estimate the dielectric function of the material and then subsequently infer the spectral reflectance from those measurements? But it's been several years since I studied optics/E&M and even then it was only at an undergrad level. If anyone could shed some light on the problem I'd be very grateful!


  • 4
    \$\begingroup\$ What are you trying to do exactly? WHY do you need to know the color? I think "without visible light" is impossible by definition. But then you narrow the question by saying "no visible emisssions from the robot" which is fine because you can just use ambient light. But this is too obvious. You're leaving something out. \$\endgroup\$ – DKNguyen Aug 7 at 0:23
  • \$\begingroup\$ I think this question belongs on physics.stackexchange.com \$\endgroup\$ – Charles Cowie Aug 7 at 0:23
  • \$\begingroup\$ I'm pretty sure this is physically impossible without being able to somehow measure the atomic structure of the thing and then calculate its optical properties from there. \$\endgroup\$ – Hearth Aug 7 at 0:32
  • \$\begingroup\$ Your question is confusing. Unless the room is dark, you should be able to detect reflected light from light that is already there. Is that allowable? \$\endgroup\$ – Mattman944 Aug 7 at 0:37
  • \$\begingroup\$ "the color doesn't need to be very accurate" - how accurate does it have to be? \$\endgroup\$ – Bruce Abbott Aug 7 at 1:01

What is color?

Color is the light that bounces back after you shine white light (all the visible spectrum) at a surface. Then the surface will absorb, reflect and refract the light and bounce back into your eye ball. What you perceive is the reflected part.

If you only use red light then you can't tell anything about how much the material absorbs or reflects or refracts the color blue, or any other wavelength for that matter. You only know about the color red. Same thing holds true if you use IR, you only know about IR. You can't find out about things that aren't there.

Since you're probably going to only care about RGB values and not the wavelength (I don't know, you haven't mentioned this). Then you only care about red, green and blue. So send those three colors, and measure them, and/or have three sensors that are sensitive to red, green and blue.

If you want to be done with it and call it a day, then get a RGB sensor and focus the light coming in to it. Or get a 640x480 camera and only look at one pixel.

If you want to do it better then you should poke the surface and measure the reflected waves. You could use three one-way-mirrors angled at 45° so the three light waves comes out at the same axis, that will ensure that all the three beams hit the same point. See ascii drawing below.

R  G  B      <-- 3 lasers pointing down
|  |  |  
\--\--\---   <--- R + G + B going right

^  ^  ^
45° mirror

And then you modulate the three lasers with some carrier frequency and measure with your RGB sensor and demodulate it. With modulation you don't have to be super focused on the point. With this you'll get a pretty robust system.

If it isn't obvious by now, you can't acquire the color if you are not interacting with it. You must use visible light somewhere. Either when you receive it or when you poke the material and then measure the reflection.

If you are outdoors then there's always some lamps somewhere and maybe even a moon, with enough measuring and filtering you can make it look like day. But that's because the moon is poking everything in the visible spectrum.

There is a reason why night vision cameras capture in black and white when they only use an IR lamp.

  • 1
    \$\begingroup\$ Just to add confusion, humans perceive color also by what colors and shapes surround a color. Edwin Land's experiments were simple. Use an incandescent bulb with adjustable black body radiation temperatures. Use that as a source for a colorful picture. Raise and lower the lamp temperature. Folks will perceive similar colors despite drastically different lighting. Now cover using a canvas and hole to allow only one color at a time to be seen. Same lamp changes. Perceptions are quite different, now. (No surroundings for perceptions to latch onto and use.) And it's even more complex, still. \$\endgroup\$ – jonk Aug 7 at 7:42
  • \$\begingroup\$ @jonk Ah right, the optical illusions. "These two areas are actually the same color". And then we have the butterfly with blue wings that actually are not blue. - Color is a difficult thing... - You can make the rainbow colors by zooming into gold atoms at different zoom levels. Well, hopefully RGB sensors are not as susceptible to surroundings as we humans are. \$\endgroup\$ – Harry Svensson Aug 7 at 7:50
  • 1
    \$\begingroup\$ RGB sensors are based upon irradiance (which is all they are capable of) and even if they are perfectly designed and applied they are not a reliable means of judging how a human would see what's being observed by the sensor. All that can be said is that the interpreted RGB sensor output will, under some narrow situations, provide a useful reading. For example, in LED binning all that's important is that if you draw out a dozen LEDs from the same binned box, and place them together in similar circumstances, that they will appear similar to each other. But that's all that can be said, really. \$\endgroup\$ – jonk Aug 7 at 8:01
  • 1
    \$\begingroup\$ Irradiance (as opposed to illuminance) is also interesting. Take two identical cubic shapes, one made of copper and another of aluminum. Drill a deep hole in the center of one face of each cube. Heat both cubes up to the same temperature -- high enough that they glow, visibly. Looking at the face of each cube, you will see a very different color temperature between the two cubes. But now look into the hole of each and the interior of the holes in each will have the same color. Emissivity matters and shape affects it. (This applies to pyrometry, which is independent from human perception.) \$\endgroup\$ – jonk Aug 7 at 8:14

At first one can say "Not impossible!"

Why? If you can measure IR reflectance spectrums of the target points, you can in theory have a material library from where you get the visible properties of every image pixel and synthesize an estimate of the visible light color photo.

But this reasoning is invalid. Knowing the material is only half of the truth. Visual properties depend also on surface geometry. IR radiation is too coarse to give information of the diffraction at shorter wavelengths. Thus we can say "theoretically impossible except in the case where both materials and surface geometries are limited to a known set of possible combinations"


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.