image_index()
Builds image indexes using Red, Green, Blue, Red-Edge, and NIR bands.
Generates a raster or density plot of the index values computed with
image_index()
.
image_index(
img,
index = NULL,
r = 1,
g = 2,
b = 3,
re = 4,
nir = 5,
return_class = c("ebimage", "terra"),
resize = FALSE,
has_white_bg = FALSE,
plot = TRUE,
nrow = NULL,
ncol = NULL,
max_pixels = 1e+05,
parallel = FALSE,
workers = NULL,
verbose = TRUE,
...
)# S3 method for image_index
plot(x, type = c("raster", "density"), nrow = NULL, ncol = NULL, ...)
A list containing Grayscale images. The length will depend on the number of indexes used.
A NULL
object
An Image
object. Multispectral mosaics can be converted to an
Image
object using mosaic_as_ebimage()
.
A character value (or a vector of characters) specifying the
target mode for conversion to a binary image. Use pliman_indexes()
or the
details
section to see the available indexes. Defaults to NULL
(normalized Red, Green, and Blue). You can also use "RGB" for RGB only,
"NRGB" for normalized RGB, "MULTISPECTRAL" for multispectral indices
(provided NIR and RE bands are available) or "all" for all indexes. Users
can also calculate their own index using the band names, e.g., index = "R+B/G"
.
The red, green, blue, red-edge, and near-infrared bands of the image, respectively. Defaults to 1, 2, 3, 4, and 5, respectively. If a multispectral image is provided (5 bands), check the order of bands, which are frequently presented in the 'BGR' format.
The class of object to be returned. If "terra
returns a
SpatRaster object with the number of layers equal to the number of indexes
computed. If "ebimage"
(default) returns a list of Image
objects, where
each element is one index computed.
Resize the image before processing? Defaults to resize = FALSE
. Use resize = 50
, which resizes the image to 50% of the original
size to speed up image processing.
Logical indicating whether a white background is present. If TRUE, pixels that have R, G, and B values equals to 1 will be considered as NA. This may be useful to compute an image index for objects that have, for example, a white background. In such cases, the background will not be considered for the threshold computation.
Show image after processing?
The number of rows or columns in the plot grid. Defaults to
NULL
, i.e., a square grid is produced.
integer > 0. Maximum number of cells to plot the index. If
max_pixels < npixels(img)
, downsampling is performed before plotting the
index. Using a large number of pixels may slow down the plotting time.
Processes the images asynchronously (in parallel) in separate
R sessions running in the background on the same machine. It may speed up
the processing time when image
is a list. The number of sections is set
up to 70% of available cores.
A positive numeric scalar or a function specifying the maximum number of parallel processes that can be active at the same time.
If TRUE
(default) a summary is shown in the console.
Additional arguments passed to plot_index()
for customization.
An object of class image_index
.
The type of plot. Use type = "raster"
(default) to produce a
raster plot showing the intensity of the pixels for each image index or
type = "density"
to produce a density plot with the pixels' intensity.
Tiago Olivoto tiagoolivoto@gmail.com
The following indexes are available in pliman.
RGB color space
R
red
G
green
B
blue
NR
normalized red R/(R+G+B)
.
NG
normalized green G/(R+G+B)
NB
normalized blue B/(R+G+B)
GB
green blue ratio G/B
RB
red blue ratio R/B
GR
green red ratio G/R
BI
brightness Index sqrt((R^2+G^2+B^2)/3)
BIM
brightness Index 2 sqrt((R*2+G*2+B*2)/3)
SCI
Soil Colour Index (R-G)/(R+G)
GLI
Green leaf index Vis Louhaichi et al. (2001) (2*G-R-B)/(2*G+R+B)
HI
Primary colours Hue Index (2*R-G-B)/(G-B)
NDGRI
Normalized green red difference index (Tucker, 1979) (G-R)/(G+R)
NDGBI
Normalized green blue difference index (G-B)/(G+B)
NDRBI
Normalized red blue difference index (R-B)/(R+B)
I
R+G+B
S
((R+G+B)-3*B)/(R+G+B)
L
R+G+B/3
VARI
A Visible Atmospherically Resistant Index (G-R)/(G+R-B)
HUE
Overall Hue Index atan(2*(B-G-R)/30.5*(G-R))
HUE2
atan(2*(R-G-R)/30.5*(G-B))
BGI
B/G
GRAY
0.299*R + 0.587*G + 0.114*B
GRAY2
((R^2.2+(1.5*G)^2.2+(0.6*B)^2.2)/(1+1.5^2.2+0.6^2.2))^1/2.2
GLAI
(25*(G-R)/(G+R-B)+1.25)
CI
Coloration Index (R-B)/R
SAT
Overhall Saturation Index (max(R,G,B) - min(R,G,B)) / max(R,G,B)
SHP
Shape Index 2*(R-G-B)/(G-B)
RI
Redness Index R**2/(B*G**3)
HSB color space
DGCI
Dark Green Color Index, based on HSB color space 60\*((G - B) / (max(R, G, B) - min(R, G, B)))
CIE-Lab color space
L*
: relative luminance (0.2126 * R + 0.7152 * G + 0.0722 * B)
a*
: 0.55*( (R - (0.2126 * R + 0.7152 * G + 0.0722 * B)) / (1.0 - 0.2126))
When type = "raster"
(default), the function calls plot_index()
to create a raster plot for each index present in x
. If type = "density"
,
a for loop is used to create a density plot for each index. Both types of
plots can be arranged in a grid controlled by the ncol
and nrow
arguments.
Nobuyuki Otsu, "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9 (1): 62-66. 1979. tools:::Rd_expr_doi("10.1109/TSMC.1979.4310076")
library(pliman)
img <- image_pliman("soybean_touch.jpg")
image_index(img, index = c("R, NR"))
# Example for S3 method plot()
library(pliman)
img <- image_pliman("sev_leaf.jpg")
# compute the index
ind <- image_index(img, index = c("R, G, B, NGRDI"), plot = FALSE)
plot(ind)
# density plot
plot(ind, type = "density")
Run the code above in your browser using DataLab