Activity 10: Blob Analysis

🕑10:14, 4 Nov 2019

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.

cell_blob

Figure 1: (a) Grayscaled cell image, (b) grayscale histogram, (c) Filtered and labeled cell blobs, and (d) cell blobs histogram.

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 px2 remain. The final area histogram is shown in Fig. 2a. This distribution gives us a best estimate of the cell area of .

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 . This means that most of the blobs, even those that appear circular in Fig. 1c, are ever so slightly elliptical.

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 . This shows that the cell blobs do not vary much in diameter.

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 .

area
(a) area
eccentricity
(b) eccentricity
major axis length
(c) major axis length
perimeter
(d) perimeter

Figure 2: Histograms of the blob properties.

References

  1. M. N. Soriano, A10 - Blob analysis (2019).

Keywords

image processing
computer vision
blob detection
blob analysis
scikit-image