Search code examples
algorithmcolorsstereo-3dstereoscopyanaglyph-3d

How to implement a procedure of calibration red and cyan colors of monitor for concrete red-cyan anaglyph glasses?


I am developing an application for treatment of children. It must show different images for left and right eyes. I decided to use cheap red-cyan glasses for separating the fields of view of the eyes. The first eye will see only red images the second one - only cyan.

The problem is that colors on monitor are not really red and cyan. Also glasses are not ideal. I need to implement the calibration procedure for searching the best red and cyan colors for current monitor and glasses. I mean I need to change white (color of background), red and cyan classes on some more suitable colors to make red and cyan colors visible only for one eye.

Does anybody know any algorithms for calibrating anaglyph colors? I think I need to implement a special UI for calibrating colors. I am developing an application for iOS and Android.


Solution

  • You obviously lack the background knowledge.

    1. Monitors

      Nowadays are used mostly LCDs these emits 3 basic wavelength bands (R,G,B). Red and green have fairly sharp spectra but blue is relatively wide. It also emits cyan and orange wavelength bands (not as sharp as R,G but sharper then B).

      I suspect these two are from back-light (an is present on all devices I measured even phones)

    2. Anaglyph glasses

      these are band filters so they block all wavelength out of their range up to a scale

    3. spectra

      This is how it looks like (White on my LCD):

      white onmy LCD

      and how I see/interpret it:

      LCD spectra

      bands are approximate (I have just homemade spectroscope with nonlinear scale and not spectrograph) and I am unable to take clear image of the spectra (have only automatic cameras). The back-light residue is blocked by my glasses completely and even the cyan filter passes it but it lower the brightness to point that is unseen to me on mine current LCD brightness settings.

    4. calibration

      The wavelengths you can use are just R,G,B (no matter the color).

      Color is not the same as wavelength it is just subjective Human Perception not a physical variable !!!

      so the color is irrelevant just filter image for one eye by setting all pixels with R,G only and the other one with R only and merge them together.

      The only thing to calibrate is brightness. The filters in glasses should have the same blocking properties but the cheap one usually have not. That means one eye is getting different brightness then the other one which can cause discomfort so you can multiply pixels by the brightness (separate value for left and right eye). This is the only thing to calibrate the less quality filters the darker image you need.

    5. anaglyphs colors

      you can use B/W images these are most comfortable to look at. You can use Color images too but for some colors (like blue water) is this uncomfortable because one eye see it and the other not. Brain computes the rest but the feeling is uncomfortable after time. It is similar to hearing music that is off key.

      It can be helped by adding white-ish component to such color but that will lose the color correctness of image it depends on what you need to do ...

    6. anaglyphs eye distance

      I am from central Europe so all data bellow are from that region !!!

      • average distance of human eyes view axises is 6.5 cm.
      • male horizontal FOV angle is 90 degree (including peripheral vision)
      • male horizontal FOV angle is 60 degree (excluding peripheral vision)

      so if your anaglyph render has real sizes then set the FOV and cameras distances accordingly. If not then you also should add horizontal camera distance to calibration because the depth perception is affected also by:

      • the distance of viewer to monitor
      • their subjective depth perception
      • the scale the objects are rendered (also the monitor/image size)