I have been working on the project to classify crops as health or unhealthy. For this task I have taken the open source dataset from the the website https://www.sensefly.com/education/datasets . It has the RGB crop field images and orthomosaic is also available.

I have been reading research paper regarding this and most of the approaches are classification using vegetation indices (NDVI).

I am facing problem in extracting this detail. The method to extract NDVI are being applied on satellite imageries.

How can I extract this data from my aerial images?

  • 1
    You do know that in order to calculate the NDVI you need data which contains a NIR channel?`
    – Erik
    Commented Jan 7, 2021 at 10:02
  • could you share some details of how can I perform this classification with RGB images. Commented Jan 7, 2021 at 10:26
  • yes with NDVI I can't. But are there any other solution to do such classification on aerial images. Commented Jan 7, 2021 at 10:29
  • I am not getting it. They are using aerial images generating orthomosaic and extracting the vegetation indices and classifying the crop. I need some guidance related to this so that I get to proper track. Commented Jan 7, 2021 at 10:35
  • I did not come across any method till now which can be used to do classification on RGB images. could you please suggest something reagarding this? Commented Jan 7, 2021 at 10:37

3 Answers 3


Having only RGB you cannot calculate the NDVI. As stated in the comment, you need as well the NIR (near-infrared) channel (https://gisgeography.com/ndvi-normalized-difference-vegetation-index/)


You can make a fake NDVI (so called "false NDVI") using:

(Green - Red)/(Green + Red - Blue)

Though for me this failed to pick up the more orangey colour of eucalypts, plus it also gave some pretty crazy values in the shadows

What ended up working for me in QGIS is

((( "RGB Image@1" + (1.5*"RGB Image@2") - (2.5 * "RGB Image@3") ) / ( "RGB Image@1" + (1.5*"RGB Image@2") + (2.5 * "RGB Image@3"))) + 1) * ((("RGB Image@2" - "RGB Image@3")/("RGB Image@2" + "RGB Image@3")) + 1)

Where bands 1, 2 and 3 are red, green and blue

Though this gave false positives for orange roofs and false negatives for wattles, hence why NIR is such an important band for this

Custom Fake NDVI


Here are Functions for 10 Vegetation Indices in Python, Matlab and R Languages. Hope it useful for you. Link: https://medium.com/@tnmthai/functions-for-10-vegetation-indices-in-python-matlab-and-r-languages-6830161431ac

  • 1
    Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Commented Apr 9, 2023 at 7:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.