pliman 2.0.0
New functions
-
analyze_objects_iter()
to execute an interactive section ofanalyze_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()
andset_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()
, andimage_segment_mask()
to create masks and segment images based on such a mask. -
image_segment_manual()
,image segment kmeans()
, andimage_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 coefficients
-
A new family of
landmarks_*()
functions to handle landmarkslandmarks()
: Create image landmarkslandmarks_add()
: Artificially inflates the number of landmarkslandmarks_angle()
: Angles between landmarkslandmarks_dist()
: Distances between landmarkslandmarks_regradi()
: Pseudolandmarks with equally spaced angles
-
object_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 foranalyze_objects_shp()
. This function aligns and crops the image using either base or mapview visualization.
New features
-
New
viewer
option added. Now, iterative functions such aspick_palette()
andmeasure_disease_iter()
have an argumentviewer
. If not provided, the value is retrieved usingget_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 theset_pliman_viewer()
function. For example, you can runset_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 somepoly_*()
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()
, andmeasure_disease_byl()
have now afilter
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
andreference_smaller
were included inanalyze_objects()
indicating when the larger/smaller object in the image must be used as the reference object. -
Arguments
efourier
andnharm
included inanalyze_objects()
. Ifefourier = TRUE
, Elliptical Fourier analysis is computed for each object depending on the number of harmonics (nharm
). -
Logical arguments
reference_larger
andreference_smaller
included inanalyze_objects()
. Those indicates when the larger/smaller object in the image must be used as the reference object. This only is valid whenreference = TRUE
andreference_area
indicates the area of the reference object. IMPORTANT. Whenreference_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
andRcppArmadillo
dependencies were included, allowing the implementation ofC++
code. This will dramatically reduce the time computing of some functions/procesures. As an example, we wave.- Reduction in time processing from more than 5 minutes to less than 1 second using the new
object_rgb()
function to extract the RGB values from an image (1445 x 1084) with ~1400 objects. - Reduction in time processing of the set of
*_poly()
functions.
- Reduction in time processing from more than 5 minutes to less than 1 second using the new
Minor changes
get_measures()
now remove known objects from the results when using theid
argument.- The right-hand of argument
measure
inget_measures()
now accepts a numeric object stored in the global environment. analyze_objects()
now returns the objectsobject_index
andobject_rgb
when the argumentpattern
is used. Thanks to João Paulo Oliveira Ribeiro for alerting me regarding this issue.- New argument
reference
inanalyze_objects()
to adjust measures using a reference object in the image. - Argument
object_index
inanalyze_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 withplot
to standardize the argument across functions.rgb_to_hsb()
optimized usingC++
.- Change
rows
andcols
withnrow
andncol
, respectively, in functionsanalyze_objects_shp()
,image_shp()
,measure_disease_shp()
, andobject_split_shp()
, to standardize the arguments across functions.