When dealing with image processing and computer vision these two terms come up perennially and at times interchangeably - Blob detection and Connected Component labeling.
The main difference I found was that people dealing with video grabs talk more about blobs, also that this deals with features that are considerably lighter/darker than their surroundings. Connected components (CC) deal with areas that share the same color.
However from a coding and implementation point of view can these be used interchangeably - like cvFindContours()
be used for detecting "CCs" and "blobs", meaning the same thing essentially? Or for that matter the Blobs library be used for CC analysis as well as blob detection.
Any set of pixels which is not separated by a boundary is call connected. • Each maximal region of connected pixels is called a con- nected component. • The set of connected components partition an image into segments.
Connected components are the set of its connected subgraphs. Two nodes belong to the same connected component when there exists a path (without considering the direction of the edges) between them. Therefore, the algorithm does not consider the direction of edges.
Connected component labeling (also known as connected component analysis, blob extraction, or region labeling) is an algorithmic application of graph theory used to determine the connectivity of “blob”-like regions in a binary image.
A Blob, in a sense, is anything that is considered a large object or anything bright in a dark background, in images, we can generalize it as a group of pixel values that forms a somewhat colony or a large object that is distinguishable from its background. Using image processing, we can detect such blobs in an image.
As I understand it the term “connected component labelling” refers to the final step in the process of "blob detection”, whereby each separate group of connected pixels in a binary image (for example a thresholded background difference image) is identified.
In contrast, the term “blob detection” can either be used to mean the same thing as “connected component labelling” or to refer to the two step procedure of generating a binary image AND performing connected component labelling.
The resulting connected groups of pixels can nonetheless be called “blobs" or "connected components” interchangeably.
It is also worth mentioning that "connected components labelling” has a more general meaning in terms of graph theory where “connected components” are groups of nodes where there exists a path joining any two members of that group. Connected groups of pixels in a binary image thus correspond to a special case of this broader definition, where pixels can be regarded as nodes with arcs to those pixels in their 4- or 8- pixel neighbourhood that share the same value. Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With