Reputation: 1
enter image description hereI need to detect symbols on a drawing. I want to use following procedure:
I got this to work with pretty statisfing result. However, some of my symbols are so simple that SIFT is unable to extract features. (i use open cv 4.10.0) I don't really understand, because the symbol does have some distinctive edges and corners.
The symbol looks like this: enter image description here
I tried increasing the nFeatures parameter, change the grayscale to binary for more contrast, but no improvement. Are there settings for the detector that i can change so multiple features are detected? Or perhaps some preprocessing on the symbol i can try?
the code I use to detect the features: (nfeatures is set to 500)
def getFeatures(self,img_object):
#step1 extract features using SIFT on all img_objescts
keypoints_obj = []
descriptors_obj = []
if (self.type=="SIFT"):
detector = cv.SIFT_create(nfeatures=self.nfeatures)
keypoints_obj, descriptors_obj = detector.detectAndCompute(img_object, None)
return keypoints_obj, descriptors_obj
If i run this on an icon, i get following results: 6 KP detected for a single line symbol (vectorized) and 127 keypoints detected for a enhanced, not vectorized symbol
how can i enhance the results on vectorized symbols?
Upvotes: 0
Views: 43