A new mosaic_*()
family of functions to handle
orthomosaics from RGB and multispectral images.
object_export()
and object_export_shp()
to export objects from single images to multiple images.
image_augment()
to augment an image by rotating it
multiple times.
save_image = TRUE
in
measure_disease_byl()
now exports the processed images to a
local directory, allowing the use of sad()
call to the
created object.analyze_objects()
, analyze_objects_shp()
, and
image_view()
, allowing to correctly choose the image
band.image_segment_mask()
now has a
col_background
argument.width_at
included in
analyze_objects()
.object_export_shp()
and object_export()
to
export objects from an image to multiple images in the current working
directory.plot_index_shp()
to plot rectangles on top of an RGB
image, where each rectangle is colored based on a quantitative
variable.poly_center()
by calling the column position
instead column name (X1
)analyze_objects_iter()
to execute an interactive
section of analyze_objects()
.
measure_disease_byl()
to measure disease severity
‘by
l
eaf’ in an image with several
leaves.
object_split()
to split multiples objects of an
image into a list of images.
pca()
, plot.pca()
,
get_biplot()
as helper functions to perform Principal
Component Analysis.
rownames_to_column()
,
column_to_rownames()
, separate_col()
,
round_cols()
as helper functions to manipulate
data.
A set of poly_*()
function to analyze polygons. All
of them are based on a set of coordinate points describing the edge of
the object(s). See ?utils_polygon
for more
details.
get_wd_here()
and set_wd_here()
to deal
with working directories.
apply_fun_to_imgs()
to apply a function (or
functions) to a set of images stored in the working directory.
make_brush()
, make_mask()
, and
image_segment_mask()
to create masks and segment images
based on such a mask.
image_segment_manual()
,
image segment kmeans()
, and
image_segment_mask()
to perform image segmentation in
different ways.
A new family of efourier_*()
functions to performs
Elliptical Fourier Analysis.
efourier()
: Elliptical Fourier Analysisefourier_coefs()
: Get Fourier coefficientsefourier_error()
: Erros between the original and
reconstructed outlineefourier_inv()
: Inverse Elliptical Fourier
Analysisefourier_norm()
: Normalized Fourier coefficientsefourier_power()
: Power in Fourier Analysisefourier_shape()
: Draw shapes based on Fourier
coefficientsA new family of landmarks_*()
functions to handle
landmarks
landmarks()
: Create image landmarkslandmarks_add()
: Artificially inflates the number of
landmarkslandmarks_angle()
: Angles between landmarkslandmarks_dist()
: Distances between landmarkslandmarks_regradi()
: Pseudolandmarks with equally
spaced anglesobject_edge()
to detect edges in images using
Sobel-Feldman Operator.
A new family of *_shp()
functions to analyze shape
files.
image_shp()
to construct a shape file from an
image.object_split_shp()
to splits image objects based on a
shapefile.analyze_objects_shp()
to analyze objects using
shapefiles.measure_disease_shp()
to measure disease using
shapefiles.New plot_index()
function to plot an image index
using raster package, and optionaly using the mapview package to show
the image index.
New image_view()
function to create an interactive
map view of an image. This function allows users to interactively edit
and analyze an image using mapview and mapedit
packages.
New image_prepare_mv()
function to prepare an image
to be analyzed for analyze_objects_shp()
. This function
aligns and crops the image using either base or mapview
visualization.
New viewer
option added. Now, iterative functions
such as pick_palette()
and
measure_disease_iter()
have an argument
viewer
. If not provided, the value is retrieved using
get_pliman_viewer()
. This option controls the type of
viewer to use for interactive plotting. The available options are “base”
and “mapview”. If set to “base”, the base R graphics system is used for
interactive plotting. If set to “mapview”, the mapview package is used,
allowing the users to draw shapes like points and polygons with mapedit package. To set
this argument globally for all functions in the package, you can use the
set_pliman_viewer()
function. For example, you can run
set_pliman_viewer("mapview")
to set the viewer option to
“mapview” for all functions.
Haralick’s features that quantify pixel texture for image objects were included.
Several measures were added in analyze_objects()
.
The function now wraps some poly_*()
functions to compute
shape measures such as width, length, elongation, circularity.
Haralick’s features are now computed by default. . This improvement was
at cost of a slight increase in computation time.
analyze_objects()
, measure_disease()
,
and measure_disease_byl()
have now a filter
argument that applies a median filtering in the binary mask. This is
useful to reduce the noise in the segmentation of objects.
Arguments reference_larger
and
reference_smaller
were included in
analyze_objects()
indicating when the larger/smaller object
in the image must be used as the reference object.
Arguments efourier
and nharm
included
in analyze_objects()
. If efourier = TRUE
,
Elliptical Fourier analysis is computed for each object depending on the
number of harmonics (nharm
).
Logical arguments reference_larger
and
reference_smaller
included in
analyze_objects()
. Those indicates when the larger/smaller
object in the image must be used as the reference object. This only is
valid when reference = TRUE
and reference_area
indicates the area of the reference object. IMPORTANT.
When reference_smaller
is used, objects with an area
smaller than 1% of the mean of all the objects are ignored. This is used
to remove possible noise in the image such as dust. So, be sure the
reference object has an area that will be not removed by that
cutpoint.
Rcpp
and RcppArmadillo
dependencies
were included, allowing the implementation of C++
code.
This will dramatically reduce the time computing of some
functions/procesures. As an example, we wave.
object_rgb()
function to extract the
RGB values from an image (1445 x 1084) with ~1400 objects.*_poly()
functions.get_measures()
now remove known objects from the
results when using the id
argument.measure
in
get_measures()
now accepts a numeric object stored in the
global environment.analyze_objects()
now returns the objects
object_index
and object_rgb
when the argument
pattern
is used. Thanks to João
Paulo Oliveira Ribeiro for alerting me regarding this issue.reference
in
analyze_objects()
to adjust measures using a reference
object in the image.object_index
in analyze_objects()
now recognizes the names of built-in indexes (see
?pliman_indexes()
).plot.image_index()
not limits the number of pixels to
reduce plotting time.show_image
argument changed with plot
to
standardize the argument across functions.rgb_to_hsb()
optimized using C++
.rows
and cols
with
nrow
and ncol
, respectively, in functions
analyze_objects_shp()
, image_shp()
,
measure_disease_shp()
, and object_split_shp()
,
to standardize the arguments across functions.measure_disease_iter()
to measure disease in an
interactive section.pick_count()
to count objects in an image
manually.pick_palette()
to create an image palette by picking up
color point(s) from the imagepick_rgb()
to pick up the RGB values from selected
point(s) in the image.summary_index()
to summary the index either between and
within objects.pliman
now exports the foward-pipe operator
%>%
. Code from poorman
package.count_objects()
, image_show()
,
leaf_area()
, objects_rgb()
,
prop_segmented()
, and symptomatic_area()
) were
removed.analyze_objects()
is now used as the main function to
compute the number and shape of objects.measure_disease()
is now used as the main function to
perform phytopatometry studies. The function can compute symptomatic
area, as well as the number and shape of lesions.image_segment_iter()
is used to performs iterative
image segmentation.conv_hull()
, poly_area()
,
poly_mass()
, poly_spline()
,
plot_contour()
, and plot_ellipse()
as
utilities for analyzing polygons.dpi()
to compute the resolution (dots per inch) of an
image.tune_tolerance()
for tunning the tolerance
parameter.objects_rgb()
will be depracated in the future. Now, to
compute an index for each object use the object_index
argument in analyze_objects()
, for example,
analyze_objects(object_index = "B")
.leaf_area()
will be depracated in the future. Now,
combine analyze_objects()
with get_measures()
to obtain the area and shape of objects (leaves).prop_segmented()
is now deprecated in favour of
image_segment_iter()
.count_lesions()
is now deprecated. Now, to compute the
number and shape of lesions, use the argument
show_features = TRUE
in
measure_disease()
.image_show()
is now deprecated in favour of
plot()
.fill_hull
argument in
symptomatic_area()
and count_lesions()
image_contrast()
function to avoid error
regarding image resolution.subfolder
in image_export()
to export an image to a subfolder.EBImage
installation is checked when pliman is
installed.image_pliman()
now returns the image object instead of
the path to the image. So, it is not necessarily to call it within
image_import()
.image_autocrop()
for automatic image cropping.image_filter()
to perform median-based filtering.image_contrast()
to improve contrast by performing
adaptive histogram equalizationobject_coord()
to get the object coordinates and
(optionally) draw a bounding rectangle around multiple objects in an
image.object_id()
to get the object identification in an
image.object_isolate()
to isolate an object from an
image.prop_segmented()
to perform (iterative) image
segmentation with pixels proportion.filter
in count_objects()
and
prop_segmented()
.pliman
package submitted to
CRAN.