Detecting blobs on an image#
This example shows how to detect blobs on an image with DataLab, and also covers other features such as the plugin system:
Add a new plugin to DataLab
Denoise an image
Detect blobs on an image
Save the workspace to a file
First, we open DataLab, and open the settings dialog (using âFile > SettingsâŠâ, or the icon in the toolbar).
See also
The plugin system is described in the Plugins section.
Letâs add the cdl_example_imageproc.py plugin to DataLab (this is an example plugin that is shipped with DataLab source package, or may be downloaded from here on GitHub).
If we close and reopen DataLab, we can see that the plugin is now available in the âPluginsâ menu: there is a new âExtract blobs (example)â entry.
For information, the image is generated by the plugin using the following code:
def generate_test_image(self) -> None:
"""Generate test image"""
# Create a NumPy array:
arr = np.random.normal(10000, 1000, (2048, 2048))
for _ in range(10):
row = np.random.randint(0, arr.shape[0])
col = np.random.randint(0, arr.shape[1])
rr, cc = skimage.draw.disk((row, col), 40, shape=arr.shape)
arr[rr, cc] -= np.random.randint(5000, 6000)
icenter = arr.shape[0] // 2
rr, cc = skimage.draw.disk((icenter, icenter), 200, shape=arr.shape)
arr[rr, cc] -= np.random.randint(5000, 8000)
data = np.clip(arr, 0, 65535).astype(np.uint16)
# Create a new image object and add it to the image panel
image = cdl.obj.create_image("Test image", data, units=("mm", "mm", "lsb"))
self.proxy.add_object(image)
The plugin has other features, such as denoising the image, and detecting blobs on the image, but we wonât cover them here: we will use the same DataLab native features as the plugin, manually.
The image is a bit noisy, and also quite large. Letâs reduce the size of the image while denoising it a bit by binning the image by a factor of 2.
Letâs apply a moving median filter to the image, to denoise it a bit more.
Now, letâs detect the blobs on the image.
Note
If you want to show the analysis results again, you can select the âShow resultsâ entry in the âAnalysisâ menu, or the âShow resultsâ button, below the image list:
Finally, we can save the workspace to a file. The workspace contains all the images that were loaded in DataLab, as well as the processing results. It also contains the visualization settings (colormaps, contrast, etc.), the metadata, and the annotations. To save the workspace, click on âFile > Save to HDF5 fileâŠâ, or the button in the toolbar.
If you want to load the workspace again, you can use the âFile > Open HDF5 fileâŠâ (or the button in the toolbar) to load the whole workspace, or the âFile > Browse HDF5 fileâŠâ (or the button in the toolbar) to load only a selection of data sets from the workspace.