Blob Example blob widget | home
Parameter settings : top
N_BLOBS 4096 IGNORE_EDGE_TOUCHERS Y (or t - anything but nil) MIN_AREA 1
This list was obtained by selecting the print_this_list item in the dialog below, which is seen after clicking on the parameters button.
The parameter list :
Note that the blobber, in reporting blob information, will ignore all blobs that touch the edge. These blobs can be included by setting the IGNORE_EDGE_TOUCHERS parameters to nil. Reblobbing is not necessary.
Read an image to work on. top
This one is in the sample images folder in the blob widget folder, and is called c_granin.tiff. (MLx/widgets/blob/sample images/c_granin.tif). Load it with the MLx -> Image Files -> Tiff -> Read menu.
Original Image - displayed as loaded. Note the large organelles and
the smaller dots within them.![]() |
Thresholded original (not shown) - done with threshold slider. Too much 'noise' - the outlines of the large particles are rough, and there are many smaller red blobs that we do not want. Often, the solution is to smooth the image, supressing smaller features. |
Smooth the image
so that the threshold is cleaner. 11x11 mean
filtered original. (The 'radius' of the filtering kernal is 5, and the
edge size is 11.)![]() |
Thresholded mean filter. This is more blobbable.top
|
Blob outlines are in green. One of the dim smaller organelles is split into two fragments, and another leaves one fragment. We will ignore these here. They could be ommitted from further analysis on the basis of small area...
|
The list info button gives this information Largest blob: #15, 5152 pixels 0 rejects, 0 total pixels 15 total blobs, 19340 total pixels 7 good blobs, 8 touch edge. There are no rejects, because the minimum blob area is 1 pixel. Rejects are groups of pixels with a pixel count less than the minimum blob area. The sorted areas are: 5152 2608 2444 1738 149 123 83 The last three smaller areas (less than 1000) correspond to the three fragments in the image to the left.top |
The slider for the threshold looks like this for the larger blobs:
![]()
The print stats menu gives this in a new "blob info" window. This is a list of all the blobs that do not touch the edge.
# area Max Diam Perimeter Eq Diam 4piA/PP 3 1738 48.47 158.27 47.04 0.87 5 2608 67.12 205.72 57.62 0.77 7 123 19.85 53.46 12.51 0.54 8 149 18.03 55.94 13.77 0.60 9 2444 61.91 190.17 55.78 0.85 14 83 11.40 36.14 10.28 0.80 15 5152 87.09 271.87 80.99 0.88
Blobbing the smaller particles.top
The following steps threshold the small marker blobs, and then associate these with the larger blobs segmented above. No smoothing is necessary to threshold the smaller blobs, since they are distinctly darker than the rest of the image. Make the original image into a blob window, and threshold as shown:
![]() |
![]() |
Steps here are:
|
Largest blob: #11, 46 pixels 15 rejects, 15 total pixels 139 blobs, 1473 total pixels |
The slider for this:![]()
Looking at the two sets of particles side by side:
![]() |
![]() |
To see information on both windows at once, make the blob_info_window and blob_stats_window for each, then link the two image windows. A click on either one will update the blob info windows for both.
We wish to count how many markers (on the right) are in each of the large blobs in the left. The Blob Overlap menu returns the following when the left window above is the front window, and the one on the right is selected as the second blob window.
Large blobs: c_granin-5-mean-B Small included blobs: c_granin-B 20 blobs not included Lg # Incl Count 3 15 5 13 7 2 8 2 9 14 14 1 15 42
The blob indices in the left collumn can be used to outlined and labeled using the Draw... button. Large outlines can be drawn around the blob clusters in the right image, by putting the right image in the other_images list of the left image, and then outlining the blobs of the left image.