This line:
sift = cv2.xfeatures2d.SIFT_create()
return error:
Traceback (most recent call last):
File "C:/Python27/openCVskrypty/GUI/SOLUTION2.py", line 11, in <module>
sift = cv2.xfeatures2d.SIFT_create()
AttributeError: 'module' object has no attribute 'xfeatures2d'
I read something about this error and it appears in OpenCV version 3.0. This is quite weird because I have 2.4.11 version.
I check dir(cv2) and I haven't got xfeatures2d module. Does anyone know why? Can I download it separately?
Thanks for help how fix this.
I think you should install opencv-contrib-python instead. The module you're using is not support in opencv-python. See opencv-contrib-python.
To install:
pip install opencv-contrib-python
SIFT is a patented algorithm, hence not available in each open-cv version. What you can do is install opencv and its contrib part simultaneously, i.e,
pip install opencv-python==3.3.0.10 opencv-contrib-python==3.3.0.10
SIFT worked fine for me on above versions of opencv.
For CV2 Version 4.5.1, this works
sift = cv2.SIFT_create()
kp = sift.detect(gimg,None)
img=cv2.drawKeypoints(gimg,kp,img)
plt.imshow(img)
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