Skip to content

Releases: danforthcenter/plantcv

PlantCV v3.5.0

16 Jul 21:30
cafdd67
Compare
Choose a tag to compare

DOI

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 using pcv.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

18 Jun 20:59
245232e
Compare
Choose a tag to compare

DOI

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 a json2csv conversion tool for exporting CSV files from the JSON output data
  • plantcv-workflow.py, plantcv-train.py, and plantcv-utils.py are now installed in the environment bin directory
  • pcv.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 use cv2.calcHist instead of np.histogram

PlantCV v3.4.0

31 May 14:12
e226678
Compare
Choose a tag to compare

PlantCV v3.3.0

22 May 04:09
cf90068
Compare
Choose a tag to compare

DOI

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 and histogram 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)
  • Added plantcv.opening and plantcv.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 parallel sub-package.
    • The sub-package contains functions that were originally from the plantcv-pipeline.py script file
    • Renamed plantcv-pipeline.py to plantcv-workflow.py
    • Removed SQLite database and requirements. Data are now output in a JSON-formatted text file
  • plantcv.print_results now outputs data in JSON format
  • The Outputs class now stores data in a single dictionary
  • Added add_observation method to the Outputs 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 from analyze_color

PlantCV v3.2.0

08 Mar 20:18
ad35fe5
Compare
Choose a tag to compare

DOI

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 way plantcv.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 in plantcv.__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 of line_position=0 signifying the bottom of the image, it will now signify the top of the image.
  • Add a line_thickness graphics options to the params 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 in plantcv.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

07 Feb 18:52
dd2b3c6
Compare
Choose a tag to compare

DOI

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 any matplotlib 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 of matplotlib.
  • 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

16 Jan 18:36
222aaa7
Compare
Choose a tag to compare

DOI

This release modifies the Travis CI build procedure to use dependencies installed from PyPI rather than conda. This should fix issues with deployed versions of PlantCV on PyPI and allow us to identify dependency incompatibilities faster. It also decreased build and testing types by more than half.

PlantCV v3.0.4

15 Jan 02:57
231e515
Compare
Choose a tag to compare

DOI

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.

PlantCV v3.0.3

05 Jan 17:46
e53a2a4
Compare
Choose a tag to compare

DOI

PlantCV v3.0.3 fixes some minor issues with PyPI deployment.

PlantCV v3.0.2

05 Jan 04:38
93d8009
Compare
Choose a tag to compare

DOI

PlantCV v3.0.2 only changes PyPI authentication information.