Defining blobs and a blob detector
For our purposes, a blob simply has an image and label. The image is cv::Mat
and the label is an unsigned integer. The label's default value is 0
, which shall signify that the blob has not yet been classified. Create a new header file, Blob.h
, and fill it with the following declaration of a Blob
class:
#ifndef BLOB_H #define BLOB_H #include <opencv2/core.hpp> class Blob { public: Blob(const cv::Mat &mat, uint32_t label = 0ul); /** * Construct an empty blob. */ Blob(); /** * Construct a blob by copying another blob. */ Blob(const Blob &other); bool isEmpty() const; uint32_t getLabel() const; void setLabel(uint32_t value); const cv::Mat &getMat() const; int getWidth() const; int getHeight() const; private: uint32_t label; cv::Mat mat; }; #endif // BLOB_H
The image of Blob
does not change after construction, but the label may change as a result of our classification process. Note...