Compared to analoge cameras with its hypersensitivity for ultraviolet light, the sensors of digital cameras also capture light in the near-infrared range. To compensate this, all digital cameras have an infrared filter. Despite the filter you can check with any digital camera, if an IR remote control works. Without this filter you get pictures, that contain light, that is not visible to the human eye. In the picture on the right the black fleece pullover becomes ochre.
NDVI stands for 'Normalized Differenced Vegetation Index'. In the Wikipedia, there is a good description of it. The easiest way for your own images is described at Infragram. My approach is to use a Raspberry Pi with the Pi NoIR and the special blue-filter to take raw 'infra-blue' pictures. And then convert these images with ImageMagick into a NDVI image.
The original formula is: \( NDVI = \frac{NIR - RED}{NIR + RED} \)
with NIR for near infrared and RED for the visible red light.
It produces values from -1 to 1. Negativ values indicate water,
around 0 it indicates no vegetation and up to 1 is showing more and more vegetation.
As the blue-filter removes the red light, the red channel has the NIR light.
The blue channel has a good value for the visible red light.
without filter | with blue filter | |
original: | ||
converted: |
This pictures are taken on a bright day in early March. The conifers at the upper right and the lawn at the lower right are faint visible. The birch at the left is hardly noticeable in the original image, but clearly appears in the edited image. For the other deciduous trees, it is clearly too early in the year. On the trash cans left below you can see moss. The inorganic you can see is the yellow plastic lid of the recycling waste container and the brick wall on the left. But not the right brick wall, although it appears nearly identical.
The NDVI image was calculated from the original with convert. Negativ values were cut and positive values were raised by four.
convert raw_infra_blue.jpg -separate # Aufteilen der Kanäle zu R G und B -delete 1 # G löschen \( -clone 0-1 -compose plus -composite \) # R und B kopieren und addieren \( -clone 0-1 -swap 0,1 -compose minus -composite \) # R und B kopieren und R minus B bilden \( -clone 2-3 -compose divide -composite \) # Division von Differenz und Summe -delete 0-3 # alle bis auf das letzte Bild löschen -level 0,25% # Level anheben auf das Vierfache \( xc:blue xc:green xc:yellow xc:orange xc:red xc:white # Falschfarbenspektrum ... +append -filter Cubic -resize 256x1\! \) -clut # bilden und anwenden ndvi.jpg