Releases: danforthcenter/plantcv
PlantCV v3.5.0
PlantCV v3.5.0 adds new functionality and fixes several bugs and usability issues.
Summary of changes:
- Added
pcv.analyze_thermal_values
to handle thermal data analysis. - Update Dockerfile
- Added a thermal tutorial
- Added functionality to
pcv.readimage
to allow it to handle .csv format files for thermal imaging. - Add
pcv.visualize.clustered_contours
which creates an image that assists with debugging parameters upstream of usingpcv.cluster_contours
- Bug fix regarding listing observations while running PlantCV parallel workflows.
- Removed legacy format where
pcv.analyze_*
functions returned lists. When a function returns a single image it will no longer store that image inside a list object. - Various documentation updates and improvements
- The function
pcv.within_frame
now stores an observation in addition to returning a boolean to the user
PlantCV v3.4.1
PlantCV v3.4.1 is an intermediate release to address a few issues, particularly with the new JSON output data format.
Summary of changes:
- Updated format of JSON output files
- Added
plantcv-utils.py
script with ajson2csv
conversion tool for exporting CSV files from the JSON output data plantcv-workflow.py
,plantcv-train.py
, andplantcv-utils.py
are now installed in the environmentbin
directorypcv.visualize.pseudocolor
now has the ability to apply custom padding when cropping- Updated skeleton pruning algorithm
- Combined pruning and skeleton segmentation
- Put the iterative pruning method into an internal function
- set roi_type='partial' default for the roi_objects function
- Add fill_holes function that does a flood fill on black holes inside a binary mask
- Various documentation updates and improvements
- Updated the
analyze_nir_intensity
function to usecv2.calcHist
instead ofnp.histogram
PlantCV v3.4.0
PlantCV v3.3.0
PlantCV v3.3.0 adds new functionality and fixes several bugs and usability issues. Big thanks to @HaleySchuhl, @dschneiderch, @JLJ90, @huberma, and @karnoldbio for work and guidance on the updates below.
Summary of changes:
- Added
plantcv.visualize
sub-package- Moved
pseudocolor
andhistogram
into sub-package - Added
colorize_masks
function to sub-package to make false-colored images from a set of binary masks (e.g. output masks from the naive Bayes classifier)
- Moved
- Added
plantcv.opening
andplantcv.closing
functions (removes salt and pepper noise) - Added
plantcv.threshold.custom_range
function (threshold based on upper and lower values) - Added
plantcv.within_frame
function (tests if object, in a binary image, is within the field of view) - Added
plantcv.morphology
sub-package- Added
skeletonize
function to sub-package (skeletonizes a binary image) - Added
prune
function to sub-package (removes spurs from skeleton) - Added
check_cycles
function to sub-package (checks for connected cycles in skeleton) - Added
find_branch_pts
function to sub-package (finds branch points in skeleton) - Added
find_tips
function to sub-package (finds tips in skeleton) - Added
segment_skeleton
function to sub-package (segments a skeleton into component paths) - Added
segment_sort
function to sub-package (sorts segments into primary and secondary groups) - Added
segment_id
function to sub-package (plots/labels segment IDs) - Added
segment_path_length
function to sub-package (calculates segment lengths) - Added
segment_euclidean_length
function to sub-package (calculates segment Euclidean lengths) - Added
segment_curvature
function to sub-package (calculates the ratio of path length to Euclidean length) - Added
segment_angle
function to sub-package (calculates the overall angle of the segment) - Added
segment_insertion_angle
function to sub-package (calculates the angle that a segment intersects another segment) - Added
segment_tangent_angle
function to sub-package (calculates the angle between the tangents of the ends of each segment)
- Added
- Added
parallel
sub-package.- The sub-package contains functions that were originally from the
plantcv-pipeline.py
script file - Renamed
plantcv-pipeline.py
toplantcv-workflow.py
- Removed SQLite database and requirements. Data are now output in a JSON-formatted text file
- The sub-package contains functions that were originally from the
plantcv.print_results
now outputs data in JSON format- The
Outputs
class now stores data in a single dictionary - Added
add_observation
method to theOutputs
class. Allows user to add custom observations to the output - Output observations are stored by a unique variable name along with a trait name, method, scale (units), data type, value, and label(s)
- Keep 1st generation sub contours when using 'largest' in
roi_objects
- In
analyze_color
, color and color property scales now use the conventional scale for each type (e.g. hue is a value from 0-359 degrees while green is a value from 0-255) - Added summary statistics for hue in
analyze_color
: median hue value, circular mean hue value, and the circular mean standard deviation of hue - Removed the
bins
argument fromanalyze_color
PlantCV v3.2.0
PlantCV v3.2.0 adds new functionality and fixes several bugs and usability issues.
Summary of changes:
- Added functionality to the
plantcv.print_results
function. It now allows users to print the data returned, naming the .txt file whatever they would like. - Added complete scripts at the bottom of each PlantCV tutorial in the documentation.
- Added new function
plantcv.roi.multi
, allowing users to specify parameters for a grid of regions of interest (ROIs) or supply a list of centers for ROIs if they are not in a grid arrangement.
Restructure the wayplantcv.analyze_*
functions return outputs. Each function now returns the images so the user can save them. - Enhancements to the
plantcv.pseudocolor
function including the addition of an “image” background option, adding the option to turn off titles/axes and colorbar, and an auto-crop option.
Changed Matplotlib import (now imported globally inplantcv.__init__.py
), fixing the non-fatal warning from setting the matplotlib backend multiple times. - Added debug mode to
plantcv.analyze_color
function.
plantcv.analyze_bound_horizontal
was previously determining line position differently than the rest of the functions in PlantCV. Instead ofline_position=0
signifying the bottom of the image, it will now signify the top of the image. - Add a
line_thickness
graphics options to theparams
class so users can change the line thickness for the functions plotting lines onto images (analyze_object, all ROI functions, analyze_bound_horizontal, analyze_bound_vertical, acute_vertex, x_axis_pseudolandmark, y_axis_pseudolandmark, scale_features, roi_objects, object_composition). - Add a link in the table of contents to the PlantCV Hyperspectral subproject documentation.
- Add an “image” background option to the
plantcv.auto_crop
function. - Improved code testing coverage to 100%.
- Allow string arguments to be case insensitive.
- Added a new option to
roi_type
inplantcv.roi_objects
which allows only the largest contour to to be kept. - Standardize argument order and naming across functions.
- Updated functionality of the
plantcv.plot_hist
function, including adding an optional mask argument and allowing users to save histograms.
PlantCV v3.1.0
PlantCV v3.1.0 addresses several bugs and usability issues. Big thanks to @HaleySchuhl and @dschneiderch!
- All analysis functions now output visualization images rather than attempting to save them directly. This removes the
filename
input parameter and gives users the flexibility to save, plot, etc. what they want to where they want. - A new function
pseudocolor
was added to give users the ability and flexibility to take grayscale images and colorize them with anymatplotlib
colormap, autocrop them to the plant (or other object), mask out background, etc. This function can be used with the changes made above to customize visualization of output images. Colorized images have a built-in color scale bar. - Due to the changes above, the
plot_colorbar
function was removed as it's no longer used. - Histograms are now plotted with
plotnine
instead ofmatplotlib
. - A Canny edge detection function was added (
canny_edge_detect
). - A color standard card auto-detection method (
transform.find_color_card
) was added.
PlantCV v3.0.5
PlantCV v3.0.4
This release fixes an issue that prevents PlantCV from being installed with OpenCV v4, which is not currently supported. The documentation and docstrings were thoroughly revised for correctness, completeness, and consistency. The installation instructions were updated to include methods for installing PlantCV from PyPI and Bioconda.