RN Singh
Bappa Das
Sonam
Anil Kumar
Santosha Rathod*
Corresponding author: santoshagriculture@gmail.com
The rgbIndices package provides a comprehensive set of
RGB-based indices derived from digital images. These indices are widely
used in agriculture, crop phenotyping, vegetation monitoring, and
image-based modeling.
The package includes multiple groups of indices such as basic, difference, ratio, normalized difference, vegetation, and color indices.
An RGB image consists of three channels:
| Index | Formula |
|---|---|
| Normalized Red (r) | R / (R + G + B) |
| Normalized Green (g) | G / (R + G + B) |
| Normalized Blue (b) | B / (R + G + B) |
| Intensity (INT) | (R + G + B) / 3 |
| Index | Full Form | Formula |
|---|---|---|
| GRD | Green Red Difference | G − R |
| BGD | Blue Green Difference | B − G |
| RGD | Red Green Difference | R − G |
| RBD | Red Blue Difference | R − B |
| GBD | Green Blue Difference | G − B |
| BRD | Blue Red Difference | B − R |
| Index | Full Form | Formula |
|---|---|---|
| GRRI | Green Red Ratio Index | G / R |
| GBRI | Green Blue Ratio Index | G / B |
| RBRI | Red Blue Ratio Index | R / B |
| RGRI | Red Green Ratio Index | R / G |
| BGRI | Blue Green Ratio Index | B / G |
| BRRI | Blue Red Ratio Index | B / R |
| Index | Full Form | Formula |
|---|---|---|
| NGRDI | Normalized Green Red Difference Index | (G − R) / (R + G + B) |
| NRGDI | Normalized Red Green Difference Index | (R − G) / (R + G + B) |
| NBRDI | Normalized Blue Red Difference Index | (B − R) / (R + G + B) |
| NRBDI | Normalized Red Blue Difference Index | (R − B) / (R + G + B) |
| NGBDI | Normalized Green Blue Difference Index | (G − B) / (R + G + B) |
| NBGDI | Normalized Blue Green Difference Index | (B − G) / (R + G + B) |
Note: Some normalized difference indices are sign-inverted counterparts of each other (e.g., NGRDI vs NRGDI).
| Index | Full Form | Formula |
|---|---|---|
| WI | Woebbecke Index | (G − B) / (R − G) |
| GRVI | Green Red Vegetation Index | (G − R) / (G + R) |
| IKAW | Kawashima Index | (R − B) / (R + B) |
| NDTI | Normalized Difference Turbidity Index | (R − G) / (R + G) |
| GBI | Green Blue Index | (G − B) / (G + B) |
| GLI | Green Leaf Index | (2G − R − B) / (2G + R + B) |
| VARI | Visible Atmospherically Resistant Index | (G − R) / (G + R − B) |
| NDI | Normalized Difference Index | (g − r) / (g + r) |
| ExG | Excess Green Index | 2g − r − b |
| ExR | Excess Red Index | 1.4r − g |
| ExGR | Excess Green minus Red | 3g − 2.4r − b |
| MxEG | Modified Excess Green | 1.262G − 0.884R − 0.311B |
| ExB | Excess Blue | 1.4b − g |
| RGBVI | RGB Vegetation Index | (G² − RB) / (G² + RB) |
| Index | Full Form | Formula |
|---|---|---|
| Grey | Gray Intensity | 0.2898r + 0.5870g + 0.1140b |
| BI | Brightness Index | √((R² + G² + B²)/3) |
| HI | Hue Index | (2R − G − B) / (G − B) |
| RI | Redness Index | R² / (B × G³) |
| SI | Saturation Index | 2(R − G − B) / (G − B) |
| CI | Coloration Index | (R − B) / R |
| CIVE | Color Index of Vegetation | 0.441R − 0.811G + 0.385B + 18.78745 |
| VEG | Vegetative Index | G / (R^0.667 × B^0.333) |
| SAT | Overall Saturation Index | ( |
| OHI | Overall Hue Index | atan(2(R − G − B)/(30.5(G − B))) |
| TCVI | True Color Vegetation Index | 1.4(2R − 2B)/(2R − G − 2B + 255×0.4) |
library(rgbIndices)
library(raster)
## Loading required package: sp
# ---------------------------
# Example
# ---------------------------
set.seed(123)
r <- raster::raster(matrix(runif(30*30), 30, 30))
g <- raster::raster(matrix(runif(30*30), 30, 30))
b <- raster::raster(matrix(runif(30*30), 30, 30))
img <- raster::stack(r, g, b)
# Compute indices
idx <- rgb_basic(img)
idx1 <- rgb_diff(img)
idx2 <- rgb_ratio(img)
idx3 <- rgb_normdiff(img)
idx4 <- rgb_veg(img)
idx5 <- rgb_color(img)
# Summary statistics
rgb_indices_to_mean(idx)
## # A tibble: 1 × 7
## R G B r g b INT
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.496 0.500 0.493 0.334 0.336 0.330 0.497
# Convert to table
tbl <- rgb_indices_to_tbl(idx)
head(tbl)
## # A tibble: 6 × 7
## R G B r g b INT
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.288 0.924 0.155 0.210 0.676 0.114 0.456
## 2 0.963 0.887 0.864 0.355 0.327 0.318 0.904
## 3 0.665 0.508 0.575 0.380 0.291 0.329 0.583
## 4 0.131 0.0872 0.541 0.172 0.115 0.713 0.253
## 5 0.648 0.461 0.784 0.342 0.244 0.414 0.631
## 6 0.847 0.709 0.136 0.501 0.419 0.0804 0.564
img_real <- raster::stack(rgb_example())
raster::plotRGB(img_real)
rgb_basic(img_real)
Singh, R. N., Krishnan, P., Singh, V. K., & Das, B. (2023).
Estimation of yellow rust severity in wheat using visible and thermal
imaging coupled with machine learning models.
Geocarto International.
https://www.tandfonline.com/doi/full/10.1080/10106049.2022.2160831