measure_injury {pliman} | R Documentation |
Measures Injury in Images
Description
The measures_injury
function calculates the percentage of injury in images
by performing binary segmentation and identifying lesions. It processes
either a single image or a batch of images specified by a pattern in a
directory.
Usage
measure_injury(
img = NULL,
pattern = NULL,
index = "GRAY",
threshold = "Otsu",
invert = FALSE,
opening = 5,
closing = FALSE,
filter = FALSE,
erode = FALSE,
dilate = FALSE,
plot = TRUE,
dir_original = NULL,
parallel = FALSE,
workers = NULL,
verbose = TRUE
)
Arguments
img |
The image to be analyzed.
|
pattern |
A pattern of file name used to identify images to be imported.
For example, if pattern = "im" all images in the current working directory
that the name matches the pattern (e.g., img1.-, image1.-, im2.-) will be
imported as a list. Providing any number as pattern (e.g., pattern = "1" )
will select images that are named as 1.-, 2.-, and so on. An error will be
returned if the pattern matches any file that is not supported (e.g.,
img1.pdf).
|
index |
A character value specifying the target mode for conversion to
binary image when foreground and background are not declared. Defaults
to "NB" (normalized blue). See image_index() for more details. User can
also calculate your own index using the bands names, e.g. index = "R+B/G"
|
threshold |
The theshold method to be used.
By default (threshold = "Otsu" ), a threshold value based
on Otsu's method is used to reduce the grayscale image to a binary image. If
a numeric value is informed, this value will be used as a threshold.
If threshold = "adaptive" , adaptive thresholding (Shafait et al. 2008)
is used, and will depend on the k and windowsize arguments.
If any non-numeric value different than "Otsu" and "adaptive" is used,
an iterative section will allow you to choose the threshold based on a
raster plot showing pixel intensity of the index.
|
invert |
Inverts the binary image if desired. This is useful to process
images with a black background. Defaults to FALSE . If reference = TRUE
is use, invert can be declared as a logical vector of length 2 (eg.,
invert = c(FALSE, TRUE ). In this case, the segmentation of objects and
reference from the foreground using back_fore_index is performed using the
default (not inverted), and the segmentation of objects from the reference
is performed by inverting the selection (selecting pixels higher than the
threshold).
|
opening , closing , filter , erode , dilate |
Morphological operations (brush size)
-
dilate puts the mask over every background pixel, and sets it to
foreground if any of the pixels covered by the mask is from the foreground.
-
erode puts the mask over every foreground pixel, and sets it to
background if any of the pixels covered by the mask is from the background.
-
opening performs an erosion followed by a dilation. This helps to
remove small objects while preserving the shape and size of larger objects.
-
closing performs a dilatation followed by an erosion. This helps to
fill small holes while preserving the shape and size of larger objects.
-
filter performs median filtering in the binary image. Provide a positive
integer > 1 to indicate the size of the median filtering. Higher values are
more efficient to remove noise in the background but can dramatically impact
the perimeter of objects, mainly for irregular perimeters such as leaves
with serrated edges.
|
plot |
Show image after processing?
|
dir_original |
The directory containing the original and processed
images. Defaults to NULL. In this case, the function will search for the
image img in the current working directory.
|
parallel |
If TRUE 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, especially when pattern is used is informed.
When object_index is informed, multiple sections will be used to extract
the RGB values for each object in the image. This may significantly speed up
processing time when an image has lots of objects (say >1000).
|
workers |
A positive numeric scalar or a function specifying the number
of parallel processes that can be active at the same time. By default, the
number of sections is set up to 30% of available cores.
|
verbose |
If TRUE (default) a summary is shown in the console.
|
Details
The function processes each image by reading it, applying binary
segmentation to detect lesions, filling the segmented areas, calculating
the injury percentage, and optionally saving the processed image with
highlighted lesions. In batch mode, it uses the provided pattern to
identify images in the specified directory and can utilize parallel
processing for efficiency.
Value
A numeric value representing the injury percentage for a single
image, or a data frame with injury percentages for batch processing.
[Package
pliman version 3.0.0
Index]