# Can the colors of an image be interpreted as “virtual” Doppler effect? [closed]

In astronomy, the Doppler effect is used to estimate approximate distances to stars and other celestial bodies.

Using the same principle, lets say we divide an image (photograph) in pixels and that we know the frequency of the light corresponding to the color of every pixel (As pointed out in some answers and comments, no camera can do this now, so assume that somehow we have this information)

We could then sort the pixels by frequency, choose a base frequency (the median or the mode perhaps), and then conceptually interpret the other frequencies as "shifts" to the red or blue, from the base frequency.

Using that information together with the Doppler formulas, we could calculate a "virtual speed difference" for each pixel, which would depend on the frequency of the color of the pixel's light.

Additionally, if we also know the image was captured in a certain amount of time (for example the shutter speed of the camera that was used to capture it), we could calculate a "virtual distance" for each pixel. The "virtual distance" for each pixel would be equal to the pixel's "virtual speed difference" times the capture time.

Combining the above with the real distance from the camera to any object on the image, then all other real distances, for all pixels of the image, could be estimated/calculated relative to the one that we know.

Could this work?

If not, how could the process/algorithm be improved to make it work?

Assume we only have one photograph/image and can't use ML models.

Clarification

I understand that whatever actual movement of the objects/subjects in the image, and hence real Doppler effect, will be too small to measure/detect. What I intended to convey with the question is: what happens when we interpret colors of an image as if they were the pure effect of a Doppler shift from an arbitrary base color we pick from the image? (hence the term "virtual Doppler")

I know this doesn't actually happen (ie. all light travels at c), but what if we interpret it that way?

• cameras don’t have the frequency resolution to measure doppler. no change in algorithm is going to give a sensor a capacity to do something it isn’t capable of. buy a time-of-flight camera – user28715 Aug 16 '19 at 9:44
• I'm voting to close this question as off-topic because it’s not a signal processing question in a realistic context. – user28715 Aug 16 '19 at 9:46
• @StanleyPawlukiewicz you are right that cameras don't have the frequency resolution. In my question I'm making the assumption that, somehow, we can estimate that information. – Nico Brenner Aug 16 '19 at 16:35
• @StanleyPawlukiewicz are you saying it is not realistic because we can't know the frequencies of the light in the image? What if we use an image shown on a screen? The technical specs of a monitor do include the frequencies of the light emitted by its pixels, hence we could know the frequency of the light for each pixel in an image that appears in a monitor. – Nico Brenner Aug 16 '19 at 17:25
• all you get is a gross response to a continuum of frequencies. – user28715 Aug 16 '19 at 17:30

Practically very difficult isn't it ?

Speed of ordinary objects in an office environment will be so slow compared to light speed that the resulting shift in the color (wavelength) would be exremely small; much less than the unavoidable noise floor of the typical sensor...

• Thank you for your answer, yes it would be very hard to measure actual Doppler of the objects. It seems like I phrased my question incorrectly. What I meant to ask is: what happens if we interpret colors in an image as if they were caused by a Doppler shift from an arbitrary base frequency we pick from the image? So, just conceptually, think of colors in an image as being the consequence of a relative speed difference between the different light frequencies that make up an image. I know this doesn't actually happen (ie. all light travels at c), but what if we interpret it that way? – Nico Brenner Aug 16 '19 at 16:47
• No I understood it just as you wanted to say and my answer is the same: the wavelength shift casued by ordinary objects's relative speed differences will most robably be smaller than your sensor's color perception accuracy... – Fat32 Aug 16 '19 at 18:07
• You are correct, we currently cannot accurately measure relative speeds of objects using a camera, or the wavelength shift caused by them, and I don't intend to do that. What I mean is: what if we interpret (not measure), colors in an image as if they had been caused by a Doppler effect. So, we pick some base frequency from the image, and then we use it with the Doppler formulas to calculate a virtual speed difference between the colors. We wouldn't be measuring any real speed differences or wavelength shifts, only interpreting colors that way to use the Doppler effect formulas. – Nico Brenner Aug 16 '19 at 18:18
• ok worth a try... ;-) why not make some experimentation and see what can be achieved..? :-) – Fat32 Aug 16 '19 at 18:38
• Thank you @fat32 for taking the time to discuss this topic and contribute to answer the question. Seems like I just need to try it out and see what comes out :) – Nico Brenner Aug 16 '19 at 18:42

no, this would not work, even if a technology advanced the state of the art of cameras to the wavelength resolution necessary to measure a shift.

In order to measure a shift, you need to know what the unshifted frequency is. In astronomy, the spectral emission lines are known. You need both frequencies to measure shift.

How does this scheme, know the unshifted frequency?

• Thank you for your answer. You are right, a real Doppler effect measurement doesn't make sense in this contest. What I meant to ask is: what happens if we interpret colors in an image as if they were caused by a Doppler shift from an arbitrary base frequency we pick from the image? So, just conceptually, think of colors in an image as being the consequence of a relative speed difference between the different light frequencies that make up an image. I know this doesn't actually happen (ie. all light travels at c), but what if we interpret it that way? – Nico Brenner Aug 16 '19 at 16:49
• We wouldn't know the "real" unshifted frequency, we would just pick one of the frequencies from the image as our base unshifted frequency, only for the purposes of the calculations, so we can use it with the Doppler formulas. – Nico Brenner Aug 16 '19 at 18:22

Say the intensity signal at one of the color channels changes linearly from 1 to 0.5 relative to full scale when the wavelength changes by 5 nm near 580 nm, and you have a laser for illumination at that wavelength. For an object moving 100 km/hour or 28 m/s, the doppler shift is 28 m/s * 2 / speed of light = 0.0000002 times the wavelength, 580 nm * 0.0000002 = 0.0001 nm. This corresponds to an intensity change of 0.0001 nm * 0.5/(5 nm) = 0.00001 relative to full scale. To detect a small difference like this, the signal-to-noise ratio (SNR) must be better than 1/0.00001 = 100,000. A camera might achieve a SNR of 100 at each pixel at an exposure time of 1 second. Binning multiple pixels and calculating the bin average would give some advantage, say binning 100x100 pixels would get you to a SNR of 10,000. That's still a way off from being above the minimum needed SNR of 100,000. You cannot increase the bin size, because the object moves so fast that it won't fill a large bin for long. You cannot increase exposure time, because illuminating the object sufficiently with a laser becomes difficult. With lasers, you might also get interference patterns that... interfere with your measurements.

Let's play along with your actual question which is not about measuring real doppler shifts. To interpret red-green-blue (RGB) pixel color variations as being solely due to per-pixel doppler shifts, you would assume that the given not shifted reference RGB color originates from a known spectral distribution, for example a single peak of a laser-illuminated object, or a black body radiation spectrum. To estimate the per-pixel shift, you would need to known the spectral sensitivities of the RGB channels and to find for each pixel the shift that most closely produces the pixel RGB color, possibly fitting also a gain parameter.

I don't get your distance estimation idea.

• Thank you @Olli-Niemitalo, very insightful as usual. My question is confusing. What I meant to understand is: what happens if we interpret colors in an image as if they were caused by a Doppler shift from an arbitrary base frequency we pick from the image? So, just conceptually, think of colors in an image as being the consequence of a relative speed difference between the different light frequencies that make up an image. I know this doesn't actually happen (ie. all light travels at c), but what if we interpret it that way? – Nico Brenner Aug 16 '19 at 16:51