How do you capture 3 separate multispectral channels (bands) in a traditional RGB Bayer color camera?

A camera image sensor is composed of pixels which measure the amount of light in varying amounts from a lot of light (white pixel), a medium amount of light (gray pixel) to no light (black pixel). Pretty much all image sensors are single (1) channel (greyscale), unless additional filtering layers are applied on top.

Traditional RGB color cameras utilize a single image sensor but produce images with 3 channels (bands). They do this by using a Bayer color filter array (CFA) over the sensor. The Bayer pattern typically has a repeating group of 4 pixels in the order RGGB (red, green, green, blue). The Bayer filter group is then interpolated into 3 image channels red, green, blue. Interpolation means the missing pixels are filled in by averaging the values of the surrounding pixels. The Bayer interpolation is how a mono single channel image sensor is "converted" to a 3 channel image sensor.

The transmission of a Bayer filter array typically looks like this:

MAPIR then installs our own band pass filters before the Bayer filter array to only allow the wavelengths we want to measure to be captured by the sensor. Here is the transmission chart for our popular RGN (Red/Green/NIR) filter:

In our RGN cameras the incoming light is first filtered by our RGN filter, then filtered by the Bayer filter array, and then captured on the sensor.

Looking at the above Bayer transmission chart you can see that each of the red, green, blue channels capture not only the associated RGB color, but also other wavelengths like Red-Edge (700-800nm) and NIR (800-1000nm). So when we use a filter like our RGN which allows NIR light to pass through, all 3 Bayer filters allow NIR light to also pass through to the sensor. That means that the resulting RGN image channels actually contain the following: Red+NIR, Green+NIR, NIR. In order to remove the interfering NIR light further processing must be done.

Measuring the assembled camera for the sensor response in each channel we can separate the channels from one another (and thus remove the NIR in our RGN example). The result will then be the expected Red, Green, NIR (image channels 1,2,3).

Without using the sensor response measurements to correct the pixel data the pixel values will not be correct. If you capture Red + NIR, you do not know how much Red light there is. When you process these images using a multispectral index, such as NDVI, if the image channels have not been corrected for sensor response the resulting index (i.e. NDVI) values will not be correct.

To convert the corrected pixel values to reflectance see this page.


Here is an example of a RAW image from a MAPIR Survey3W RGN camera that has been debayered (Bayer interpolation applied). Notice how green the top white reference targets are, due to twice as many green filters in the Bayer CFA.

Here is the image corrected for sensor response and calibrated for reflectance, which looks similar to if the image was white balanced.

Our RGN filter allows Red, Green, and Near Infrared (NIR) light to pass through to the sensor. The green grass around the calibration target mostly reflects NIR light, which is why it is overly blue in color. Blue light is blocked from reaching the image sensor, so the NIR 850nm light is what is captured in the blue (3rd) image channel. The green light that our eyes see is much less intense than the NIR light being reflected, which our eyes cannot see.

Here are the original debayered image's 3 image channels from left to right: Red, Green, NIR. Remember the Red and Green channels also captured NIR light.

Here are the same 3 image channels corrected for sensor response and calibrated for reflectance, from left to right: Red, Green, NIR.

Notice how the last photo in each row, the near infrared (NIR) light channel is much brighter than the middle green light channel after correction. That is because healthy green grass reflects a lot more NIR light than it does green light. If we could see NIR light as humans we could be easily blinded when looking at sunlit healthy vegetation.

Contrast is the difference between bright and dark pixels. Notice that the contrast between the Red (1) and NIR (3) channels is much larger/higher after the correction.

The NDVI index compares the difference between the Red and NIR contrast. For vegetation the NDVI value typically ranges from 0.3 (unhealthy) to 0.8 (healthy).

On the below left is the non-calibrated NDVI image from the RAW image, and on the right is the corrected calibrated image. The NDVI scale is the typical range 0 to 1 for vegetation analysis.

The non-calibrated image above has NDVI values that are incorrect, which is why they are all so low in value. You can see the image better if you change the scale to -0.5 to 1 below.

Match the NDVI value with the color in the middle gradient LUT legend. Keeping in mind that healthy grass is typically greater than 0.6 and you can see how the low grass values on the above left non-calibrated image of 0.2 are incorrect. Since the image is not calibrated it also cannot be compared to an image you take tomorrow.

It is important to process your images correctly and adjust the contrast (LUT) scale accordingly, otherwise you may produce incorrect results.