Activity 10: Blob Analysis
For this activity [1], we’ll use the provided image of a cell. First, we convert it to grayscale
(Fig. 1a) and obtain its histogram (Fig. 1b. Notice that there is a huge
peak somewhere between the 200 and 250 grayscale values, and another relatively smaller peak at around 200. We can
interpret the huge peak as the background values and the small peak as the cell values. Thus, we can use Otsu’s method
to automatically select the best threshold value. From here, we can use the skimage
library to automatically detect
the blobs and label them. Each detected unique blob is labeled by assigning it a unique integer. A total of 150 blobs
were detected. The result of the blob detection and labeling is shown in Fig. 1c, and its
grayscale histogram in Fig. 1d. Note that Otsu’s method was able to separate the two peaks.
Initial inspection of the blob detection showed that there were some smaller blobs being detected. Using the
regionprops
function to obtain the blob areas, it was observed that there was a fairly narrow peak at around
175Â px2, with some outlier values < 100 and > 300 px2. We then perform filtering by blob
area such that only blobs with
We also obtain the eccentricities of the blobs and filter them this time by the best estimate of the blob area. The
resulting histogram is shown in Fig. 2b. The best estimate for the eccentricity of the filtered
blobs is
We also obtain the major axis lengths―which we will essentially treat as the blob diameter―of the blobs and filter them
again by the best estimate of the blob area. The resulting histogram is shown in Fig. 2c. The
best estimate for the major axis lengths of the filtered blobs is
Finally, we obtain the perimeter of the blobs. Following the same procedures as before, we obtain a histogram in
Fig. 2d and a best estimate of the perimeter
References
- M. N. Soriano, A10 - Blob analysis (2019).