Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-slimstat domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/wordpress/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ninja-forms domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/wordpress/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the updraftplus domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/wordpress/wp-includes/functions.php on line 6114
Changes to image segmentation – Scripps Plankton Camera System

Changes to image segmentation

Home Forums SPC Technical Image Processing Changes to image segmentation

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #156
    spcadmin
    Keymaster

    Originally, objects were segmented from the background using a a global threshold computed from the histogram of the input image via Otsu’s Method. This generally worked well but would fail in cases where the foreground object had strong variations in intensity over its body and/or gaps between body parts.

    A possible solution had been implemented and is being tested in the current system. The new method combines two different threshold methods using an OR operation on the binary masks. The first mask uses the same threshold as above while the second computes the median and standard deviation of the pixels in the image and defines the threshold as T = median + 0.8*standard_deviation and selects all pixels greater than or equal to that value. This is implemented in the code below.

    thresh1 = threshold_otsu(gray_hp)
    med_val = np.median(gray_hp)
    std_val = np.std(gray_hp)
    thresh2 = med_val + std_val
    binary = (gray_hp >= thresh1) | (gray_hp >= thresh2) 
    bw_img2 = morphology.closing(binary,morphology.disk(3))
    

    One nice feature of this method is the the median-based threshold helps fill in dark foreground parts of the images that are below the Ostu threshold. This takes advantage of the fact that we know most pixels in the image are background, and the background level does not change much.

    • This topic was modified 9 years, 8 months ago by spcadmin.
    • This topic was modified 9 years, 8 months ago by spcadmin.
    • This topic was modified 9 years, 8 months ago by spcadmin.
    • This topic was modified 9 years, 8 months ago by spcadmin.
Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.