Defining blob descriptors and a blob classifier
Earlier in this chapter, in the Understanding keypoint matching section, we introduced the concept that a keypoint has a descriptor or set of descriptive statistics. Similarly, we can define a custom descriptor for a blob. As our classifier relies on histogram comparison and keypoint matching, let's say that a blob's descriptor consists of a normalized histogram and a matrix of keypoint descriptors. The descriptor object is also a convenient place to put the label. Create a new header file, BlobDescriptor.h
, and put the following declaration of a BlobDescriptor
class in it:
#ifndef BLOB_DESCRIPTOR_H #define BLOB_DESCRIPTOR_H #include <opencv2/core.hpp> class BlobDescriptor { public: BlobDescriptor(const cv::Mat &normalizedHistogram, const cv::Mat &keypointDescriptors, uint32_t label); const cv::Mat &getNormalizedHistogram() const; const cv::Mat &getKeypointDescriptors() const; uint32_t getLabel() const...