simpleBlobDetector
implements a simple algorithm for
extracting blobs an Image
object. A blob is a region in an
image that differs in properties (e.g. brightness, color) from surrounding
regions.
simpleBlobDetector(image, min_threshold = 50, max_threshold = 220,
threshold_step = 10, min_repeatability = 2,
min_dist_between_blobs = 10, filter_by_area = TRUE, min_area = 25,
max_area = 5000, filter_by_color = TRUE, blob_color = 0,
filter_by_circularity = FALSE, min_circularity = 0.8,
max_circularity = Inf, filter_by_convexity = TRUE,
min_convexity = 0.95, max_convexity = Inf,
filter_by_inertia = TRUE, min_inertia_ratio = 0.1,
max_inertia_ratio = Inf)
image  An 

min_threshold  A numeric value representing the starting thresholding value (see Note; default: 50). 
max_threshold  A numeric value representing the ending thresholding value (see Note; default: 220). 
threshold_step  A numeric value representing the step size to go from

min_repeatability  A numeric value representing the number of threshold values a blob has to be detected at to be considered stable (see Note; default: 2). 
min_dist_between_blobs  A numeric value representing the minimum distance in pixels between pixel group centers from several binary (thresholded) images above which they are considered as distinct blobs (default: 10). 
filter_by_area  A logical indicating whether blobs should be filtered based on their area in pixels (default: TRUE). 
min_area  A numeric value representing the smallest acceptable area for blobs (in pixels). Blobs smaller than this value are discarded (default: 25). 
max_area  A numeric value representing the largest acceptable area for blobs (in pixels). Blobs larger than this value are discarded. (default: 5000). 
filter_by_color  A logical indicating whether blobs should be filtered based on color (default: TRUE). 
blob_color  An integer between 0 and 255 representing the color of the blobs. 0 will select dark blobs, 255 will select bright blobs (default: 0). 
filter_by_circularity  A logical indicating whether blobs should be filtered based on circularity (default: FALSE). 
min_circularity  A numeric value representing the smallest acceptable circularity for blobs. Blobs with smaller circularity than this value are discarded. (default: 0.8). 
max_circularity  A numeric value representing the largest acceptable circularity for blobs. Blobs with larger circularity than this value are discarded. (default: Inf). 
filter_by_convexity  A logical indicating whether blobs should be filtered based on convexity (default: TRUE). 
min_convexity  A numeric value representing the smallest acceptable convexity for blobs. Blobs with smaller convexity than this value are discarded. (default: 0.95). 
max_convexity  A numeric value representing the largest acceptable convexity for blobs. Blobs with larger convexity than this value are discarded. (default: Inf). 
filter_by_inertia  A logical indicating whether blobs should be filtered based on their inertia ratio (default: TRUE). 
min_inertia_ratio  A numeric value representing the smallest acceptable inertia ratio for blobs. Blobs with smaller ratio than this value are discarded. (default: 0.1). 
max_inertia_ratio  A numeric value representing the largest acceptable inertia ratio for blobs. Blobs with larger ratio than this value are discarded. (default: Inf). 
A data frame of class blob
with the following columns:
"id":a unique identifier for each blob in the image.
"x":the x coordinate of each blob in the image.
"y":the y coordinate of each blob in the image.
"size":the diameter of the circle containing the blob.
simpleBlobDetector
has the following steps:
The image
is converted to several binary images, each corresponding
to a different threshold starting at min_threshold
and ending at
max_threshold
, by increment of threshold_step
.
In each binary image, connected white pixels grouped together and their center of mass is calculated.
Groups of connected white pixels across multiple binary images are
merged if their centers are less than min_dist_between_blobs
pixels
apart. These are the blobs.
The centers and radii of the blobs are computed and returned.
Simon Garnier, garnier@njit.edu
# TODO