Knn match for blobs
Is there a ready made solution to match blobs (detected by the SimpleBlobDetector) the same way that one may match keypoint descriptors such as ORB in OpenCV?
I mean, when using the "detect" method of the blob detector, it stores the blobs as a vector of keypoints and, given that I used the relevant parameters, it gives me the area of each blobs. Now, I have two vectors of keypoints/blobs from two images and I want to match the blobs. Using something like knnmatch requires descriptors as inputs.
I thought of 2 possibilities, but I would prefer if there was something already optimized.
- Implement by myself the matching algorithm so that it takes as input two vector of keypoints and as output a vector of vector of DMatches (I don't trust myself to make this more efficient than a naive implementation) OR
- Create a routine that fills a mat of descriptors, with each areas encoded as a bit vector to make it look like a standard descriptors. Then use knnmatch.
Does anyone know of an alternative? Thanks :)
I do not think that the area is enough, imagine a blob that is coming closer to the camera, so its size will grow... Or supposing that the frames are very close in time, then it shouldn't be too different... Maybe it will work for some cases...
Yeah, I know this is only relevant in some special cases. Right now, I use synthetic images that are simple enough for it to work...
Why the knnMatch with ORB descriptors is not enough?
Well, actually I must do a comparative study between some methods such as ORB, BRISK, etc. and blob detection, over a wide range of synthetic and real life images, in order to characterize their functioning under some circumstances... This is in relation with my master's thesis. So it is normal that blobs won't work well in a lot of situations, but I need to show which ones...