dosertools.image_processing package¶
Submodules¶
dosertools.image_processing.binary module¶
- dosertools.image_processing.binary.add_saved_params_to_dict(save_location: Union[str, bytes, os.PathLike], params_dict: dict)[source]¶
Adds parameters saved with binaries from tiffs to parameters from file name
- Parameters
save_location (path-like) – folder where file containing parameters was saved
params_dict (dict) – existing parameters dictionary
- Returns
add_saved_params_to_dict (dict) – dictionary containing parameters from csv and from existing dictionary
- dosertools.image_processing.binary.binaries_to_diameter_time(binary_location: Union[str, bytes, os.PathLike], window: numpy.array, params_dict: dict) pandas.core.frame.DataFrame [source]¶
Converts binary image series into normalized diameter vs. time data
- Parameters
binary_location (path-like) – folder where binary images are located
window (np.array) – array of the boundaries of the image to analyze in the format [left, top, right, bottom]
params_dict – dictionary of parameters from file name and metadata saved with binary images requires parameters nozzle_diameter and fps
- Returns
binary_to_diameter_time (pd.DataFrame) – dataframe of time and D/D0 from the binary images
- dosertools.image_processing.binary.binary_images_to_csv(images_location: Union[str, bytes, os.PathLike], csv_location: Union[str, bytes, os.PathLike], fps: float, optional_settings: dict = {}) None [source]¶
Converts from binary images to csv of normalized diameter versus time
- Parameters
save_location (path-like) – The path to the folder that contains “bin” folder of binary images and csv of parameter metadata, should be named with relevent experimental information. Save location used in tiff_handling functions. ex. folder named “20210929_6M-PEO-0p01wtpt_fps25k_1”
csv_location (path-like) – The path to the folder in which csv should be saved.
fps (float) – Frames per second for the video (likely parsed from file name)
optional_settings (dict) – A dictionary of optional settings.
- Optional Settings and Defaults
skip_existing (bool) – Determines the behavior when a file already appears exists when a function would generate it. True to skip any existing files. False to overwrite (or delete and then write, where overwriting would generate an error). Default is True.
- Returns
Saved csv on disk.
- dosertools.image_processing.binary.bottom_border(image: numpy.ndarray) int [source]¶
Finds bottom border of supplied image.
Finds bottom border of supplied image for analysis by finding the row with the maximum number of white pixels below the half the height of the image (the bottom half). Return the index of the row with the first maximum number of white pixels.
- Parameters
image (np.ndarray (scikit.io.imread)) – Image from scikit.io.imread import to find the bottom border of the section to analyze
- Returns
bottom_border (int) – Index of last row to include in analysis, chosen as row with the most white pixels in the binary below the bottom half of the image
- dosertools.image_processing.binary.calculate_min_diameter(image: numpy.ndarray, window: numpy.array) float [source]¶
Finds the minimum diameter of the liquid bridge for a given image
Finds the minimum diameter in the window for a given image. Calculates a diameter profile that is the number of pixels from the first white pixel to the last white pixel. Returns 0 if there are any rows that are fully black within the window (bottom is calculated on a per-image basis using bottom_border). Returns the average of any values that are within 2 pixels of the minimum measured diameter if there are no fully black rows. Averaging attempting to reduce stepping due to the finite size of pixels relative to the thin liquid bridge.
- Parameters
image (np.ndarray (scikit.io.imread)) – image of which to find the minimum diameter of the liquid bridge
window (np.array) – array of the boundaries of the image to analyze in the format [left, top, right, bottom] bottom will be replaced with the result of bottom_border(image)
- Returns
min_diameter (float) – minimum diameter measured for the image in the window
dosertools.image_processing.tiff_handling module¶
- dosertools.image_processing.tiff_handling.bg_drop_top_edge(bg_median: numpy.ndarray)[source]¶
Determines the top edge of the background drop on the substrate.
Detects the lowest edge in the background image. Uses Sobel edge detection.
- Parameters
bg_median (np.ndarray) – median of the background video from produce_background_image
- Returns
bg_drop_top_edge (list) – list of pixel y-values for the top edge of the background
- dosertools.image_processing.tiff_handling.convert_tiff_image(image: numpy.ndarray, bg_median: numpy.ndarray, params_dict: dict, image_number: int, images_location: Union[str, bytes, os.PathLike], folders_exist: Tuple[bool, bool, bool], optional_settings: dict = {}) None [source]¶
Fully converts a raw tiff to binary png image.
Crops, perforns background subtraction, and binarizies. Always saves the binarized image as a .png, optional to save the intermediate steps.
- Parameters
image (np.ndarray) – The image to convert and save
bg_median (np.ndarray) – The single background image produced from produce_background_image
params_dict (dict) – Dictionary of parameters with the crop information added
images_location (path-like) – The folder where file should be saved
folders_exist (Tuple of three bools) – Booleans indicating whether the binary, crop, and bg_sub folders already existed to allow convert_tiff_image image to skip the relevant saves if optional_settings has skip_existing = True
optional_settings (dict) – A dictionary of optional settings.
- Optional Settings and Defaults
save_crop (bool) – True to save intermediate cropped images (i.e. experimental video images cropped but not background-subtracted or binarized). Default is False.
save_bg_sub (bool) – True to save background-subtracted images (i.e. experimental video images cropped and background-subtracted but not binarized). Default is False.
skip_existing (bool) – Determines the behavior when a file already appears exists when a function would generate it. True to skip any existing files. False to overwrite (or delete and then write, where overwriting would generate an error). Default is True.
- Returns
Image sequence (video) saved on the hard drive at save_location
- dosertools.image_processing.tiff_handling.convert_tiff_sequence_to_binary(experimental_video: skimage.io.collection.ImageCollection, bg_median: numpy.ndarray, params_dict: dict, save_location: Union[str, bytes, os.PathLike], folders_exist: Tuple[bool, bool, bool], optional_settings: dict = {})[source]¶
Takes as arguments the skimage image sequence holding the experimental video and the background image to subtract.
Performs, sequentially, cropping, background subtraction, and binarization by the Mean method, and saves the binary images.
- Parameters
experimental_video (skimage.io.collection.ImageCollection) – The video identified as the experiment video from the researcher
bg_median (np.ndarray) – The single background image produced from produce_background_image
params_dict (dict) – Dictionary of parameters with the crop information added
save_location (path-like) – The folder where file should be saved
folders_exist (Tuple of three bools) – Booleans indicating whether the binary, crop, and bg_sub folders already existed to allow convert_tiff_image image to skip the relevant saves if optional_settings has skip_existing = True
optional_settings (dict) – A dictionary of optional settings.
- Optional Settings and Defaults
save_crop (bool) – True to save intermediate cropped images (i.e. experimental video images cropped but not background-subtracted or binarized). Default is False.
save_bg_sub (bool) – True to save background-subtracted images (i.e. experimental video images cropped and background-subtracted but not binarized). Default is False.
- Returns
Image(s) saved locally in save_location
- dosertools.image_processing.tiff_handling.crop_single_image(image: numpy.ndarray, params_dict: dict, optional_settings: dict = {}) numpy.ndarray [source]¶
Crops a single image according to parameters from params_dict
- Parameters
image (np.ndarray (scikit.io.imread)) – The video identified as the experiment video from the researcher
params_dict (dict) – Dictionary of parameters with the crop information added
- Returns
cropped_image (np.ndarray) – The input image, cropped according to values in parameters dictionary
- dosertools.image_processing.tiff_handling.define_image_parameters(video: skimage.io.collection.ImageCollection, optional_settings: dict = {}) dict [source]¶
From the given video, determines the first-guess for the cropping operation.
Based on the nozzle width and safety factors crop_width_coefficient, crop_height_coefficient, etc.
- Parameters
video (skimage.io.collection.ImageCollection) – The video containing a clear image of the nozzle, we default to the raw experimental video
optional_settings (dict) –
- Returns
params_dict (dict) – Dictionary of parameters with the crop information added
- dosertools.image_processing.tiff_handling.export_params(images_location: Union[str, bytes, os.PathLike], params_dict: dict)[source]¶
Exports image parameters to a file to be stored with processed images.
- Parameters
images_location (path-like) – Path in which to save the parameters.
params_dict (dict) – Dictonary of parameters to save.
- dosertools.image_processing.tiff_handling.mean_binarize_single_image(background_subtracted_image: numpy.ndarray) numpy.ndarray [source]¶
Performs global binarization on an image according to the Otsu method
- Parameters
background_subtracted_image (np.ndarray) – The cropped image with the background subtraction performed
- Returns
binary_otsu (np.ndarray) – The binarized version of the input image
- dosertools.image_processing.tiff_handling.produce_background_image(background_video: skimage.io.collection.ImageCollection, params_dict: dict, optional_settings: dict = {}) numpy.ndarray [source]¶
Produces the background image from which the experimental video will be subtracted.
- Parameters
background_video (skimage.io.collection.ImageCollection) – The video identified as the background video from the researcher
params_dict (dict) – Dictionary of parameters with the crop information added
- Returns
bg_median (np.ndarray) – The median of the frames in the background. We prefer median because it is less sensitive to random noise and the values are likely to be integers
- dosertools.image_processing.tiff_handling.remove_bg_drop(bg_median: numpy.ndarray)[source]¶
Removes the background drop on the substrate from the background image.
Using the edge from bg_drop_top_edge, replaces all pixels at or below it with the maximum in the background.
- Parameters
bg_median (np.ndarray) – median of the background video from produce_background_image
- Returns
bg_new (np.ndarray) – bg_median with the drop at the bottom set to the maximum value
- dosertools.image_processing.tiff_handling.save_image(image: numpy.ndarray, image_number: int, save_location: Union[str, bytes, os.PathLike], extension: str)[source]¶
Saves a single image to the hard drive in save_location
- Parameters
image (np.ndarray) – The image to save
image_number (int) – Part of the filename. The frame number of this particular image in the video
save_location (path-like) – The folder where file should be saved
extension (str) – The file extension, eg, .tiff, .png
- Returns
Image saved on the hard drive at save_location
- dosertools.image_processing.tiff_handling.subtract_background_single_image(cropped_image: numpy.ndarray, bg_median: numpy.ndarray) numpy.ndarray [source]¶
Performs background subtraction from a cropped image.
Assumes cropped_image and bg_median are the same size.
- Parameters
cropped_image (np.ndarray) – The initial image, cropped according to values in parameters dictionary
bg_median (np.ndarray) – The single background image produced from produce_background_image
- Returns
background_subtracted_image (np.ndarray) – The cropped image with the background subtraction performed
- dosertools.image_processing.tiff_handling.tiffs_to_binary(experimental_video_folder: Union[str, bytes, os.PathLike], background_video_folder: Union[str, bytes, os.PathLike], images_location: Union[str, bytes, os.PathLike], optional_settings: dict = {})[source]¶
Processes experimental and background video into binarized video.
Given a experimental video folder and a background video folder, processes the videos into a folder of binarized images in the target directory. Can also produce cropped and background subtracted images given optional settings.
- Parameters
experimental_video_folder (path-like) – Points to the folder which contains the experimental video to analyse.
background_video_folder (path-like) – Points to the folder which contains the background video used in analysis.
images_location (path-like) – The folder where folders of images should be saved.
optional_settings (dict) – A dictionary of optional settings.
- Optional Settings and Defaults
save_crop (bool) – True to save intermediate cropped images (i.e. experimental video images cropped but not background-subtracted or binarized). Default is False.
save_bg_sub (bool) – True to save background-subtracted images (i.e. experimental video images cropped and background-subtracted but not binarized). Default is False.
bg_drop_removal (bool) – True to remove the background drop from the background that is subtracted from the image before binarization. False to not alter the background. Default is False.
skip_existing (bool) – Determines the behavior when a file already appears exists when a function would generate it. True to skip any existing files. False to overwrite (or delete and then write, where overwriting would generate an error). Default is True.
verbose (bool) – Determines whether processing functions print statements as they progress through major steps. True to see print statements, False to hide non-errors/warnings. Default is False.
image_extension (string) – The extension for images in the video folder. TIFF recommended. Default is “tif”. Do not include “.”.
- Returns
Image sequence(s) (video) saved on the hard drive at images_location
- dosertools.image_processing.tiff_handling.top_border(bg_median: numpy.ndarray) int [source]¶
Finds the top border of interest given a background image.
Finds the last row of the nozzle in the background image to use as the top border in further image analysis.
- Parameters
bg_median (np.ndarray) – Background image corresponding to a particular run.
- Returns
top_border (int) – Last row of the nozzle.