Public Lab Research note

Analyzing NDVI Imagery Using Blender

by unsignedint | | 4,183 views | 4 comments |

Read more:


Blender is a Free Software for 3D modeling and rendering. The software also contains an extensive suite of image adjustments and composition.


Using software, I have attempted to create node settings that allow researchers easy and efficient way to generate a composite image for NDVI imageries.

The advantage of this setting includes:

1) The software is free, and runs on various platforms

2) It's easy to adjust individual components, such as color maps, as well as channel adjustments.

3) Image files can be packed into single "blend" file. Research can send others one file containing the complete set up of the original researcher. ("Lab in a file")

4) Processing movie files or set of image sequences (such as time lapse) is no harder than processing a still image.


First, for this example, I have used an image that came with a Infragram point-and-shoot camera. (Mobius Actioncam)

This file was named example-before-processing.jpg. I wanted to plug this into Blender process, therefore I have imported this image into Blender, using a input node.


The process pass is as follows. (Please see the attached .BLEND file for details.)

1) Image input is separated to RGBA, breaking B component, connecting the rest to RGBA combiner.

2) I have applied color map, I have tried with Ned's protanopia-friendly lut as a color map for this example. I have also included a color ramp using one of the examples in the New NDVI colormap

3) Finally coloring is mixed, 50/50, coming from "GB" component of the image, as well as "B" component mapped to the color ramp -- balance for this component can be adjusted to fit your need, too.


I have obtained the following result using this process.


You can download the BLEND file below:

Further Improvements

(Added on 2014-08-27)

I have further investigated better separation of the needed component, by subtracting R component (visible light) from B, to filter out visible light portion of the image, which provided the sample below.


This could be mapped to the color scale:


Better separation also allows me to composite the result better to the visible light, which may be appropriate for identifying possible vegitation activities.


Updated version of BLEND file containing this setting is available below:

Yet Another Improvements

I have combined NDVI processing into group node -- which (hopefully) doing the NDVI processing correctly.







Updated BLEND file: (The earlier version I have uploaded had a mistake in a fomula, please download again if you have downloaded prior.)

Version Similar to Output provides web based conversion, and I have created version of BLEND file that can provide similar color maps.

This can provide three type of output, similar to Basic, Colorized, and combined (basically Colorized format overlayed by visible light -- no Stretch and Fastie colormap, yet)




Some Examples From My Yard (and Surroundings)







Blender has a potential to efficiently process image NDVI images for various applications. I would like to experiment with it further to improve the process further.

Next Step

I am still new to NDVI, having just received the camera a day ago. My future attempts, including trying the process using additional images as well as trying better color ramps and adjustments.

Comments, suggestions and improvements are highly appreciated!

Some Random Closing Comments

Spell check messed it up and this article used to be "Analyzing NDVI Imaginary Using Blender" -- I fixed it, it's not imaginary, it's a real thing :-)


Blender looks to be quite capable. I have some questions about your 3 step process to make the color mapped image:

  • What is the "A" in RGBA?
  • You said you applied the color map to the image, but did you also compute NDVI for each pixel? Or apply a color map to the original photo?
  • Does the blending in the third step explain why the color in the sky is not a color in the color gradient you used?

There seems to be great potential here.


Is this a question? Click here to post it to the Questions page.

Hello Chris! Answering your question

What is the "A" in RGBA?

Alpha. For this application, it probably does not make any difference whether I pass-through alpha component, as the original JPEG is just "RGB"

You said you applied the color map to the image, but did you also compute NDVI for each pixel? Or apply a color map to the original photo?

Color map to just "B" component of the original photo. After reading your comment, I have realized that I might have processed much of the visible light component went through the B filter. I have added further experiment of subtract visible right component ("R") from "B" which seems to be producing consistent result from supposedly "processed" image provided as an example. (I will post comparison to that later.)

Does the blending in the third step explain why the color in the sky is not a color in the color gradient you used?

Yes, it's probably for the fact, as I said above, the process also processed visible light went through "B" channel.

The last example seems to indicate that it's no longer affecting components such as color in the Sky.


I will be certainly experimenting more to produce more "prettier" presentation of the output.

Another great thing about Blender is that additional processing can be defined in Python, which may provide added functionality to process this image in a way it's more useful.

Is this a question? Click here to post it to the Questions page.

This B&W and green image is so striking!

Hello liz, I think B&W+Green reveals the presence of IR very clearly. The problem is that the intensity is hard to tell, so other color schemes are still useful, but if all you need to do is to identify where they are, it'll do its job!

You must be logged in to comment.

Public Lab is open for anyone and will always be free. By signing up you'll joined a diverse group of community researchers and tapped into a lot of grassroots expertise.

Sign up