I have orthophoto map of agricultural field and I need to count plants there. I have also multispectral map (NDVI) but I think it's not very usable here.

I know the best would be to have point layer on every single flower and then count these points. Please, is there any way how to create this point layer based on classification or something else, in QGIS or ArcMap? I know there are tools which are good for tree counting, but they are based on height canopy model and it's not very usable in my case as the height of plants is small. Below is the example of my orthophoto:

enter image description here

1 Answer 1


In this youtube channel from Micasense, they calculate tree count from a multispectral image.

Here is a list of the tools used in the workflow:

  1. Use "Raster calculator" to generate OSAVI index. You need Red and Infrared bands, the same used for NDVI.
  2. Use the identify tool on the OSAVI index and multispectral image to know which values correspond to the trees and with to backgound.
  3. Use "Raster calculator" to set a threshold that includes OSAVI values > 0.88 (adapt to your data) and Infrared values > 6000 (adapt to your data)
  4. Use the sieve tool to remove isolated pixels (noise in the threshold filter)
  5. Use the "Polygonize (Raster to Vector)" tool to create one feature for each tree.
  6. Use the query builder to exclude the polygon created for the background.
  7. Use the "buffer" tool with a small distance (adapt to your data) to smooth the tree polygons and avoid counting a possible branch as a whole tree. Make sure to check the "Dissolve result" option.
  8. Use the "centroids" tool to have a point for each feature.

Until here you already have one point per tree.

However, you can use some tools to help validate the detections and find areas of possible low confidence in the detection:

  • Generate a "Proximity map (raster distance)" based on the centroids to highlight clusters of points which may need further checking.
  • "Polygonize" this proximity map. Then calculate the area of the resulting features. Bigger outstanding clusters may indicate areas to check the detections.
  • Tweaking the threshold and sieve values may help fine tune the detections.

See the video here: Performing stand counts using multispectral data and index thresholding in QGIS

Your Answer

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

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