getting an error with detectAndCompute with AKAZE_create

Question:

Here’s my code:

import cv2

im = cv2.imread('a.png', cv2.IMREAD_COLOR)
imGray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
feat = cv2.AKAZE_create(500)
keypoints, descriptors = feat.detectAndCompute(imGray, None)

When I run it I get this error:

Traceback (most recent call last):
  File "akaze.py", line 6, in <module>
    keypoints, descriptors = feat.detectAndCompute(imGray, None)
cv2.error: OpenCV(4.6.0) /io/opencv/modules/features2d/src/kaze/AKAZEFeatures.cpp:1294: error: (-215:Assertion failed) x0 - 6 * scale >= 0 && x0 + 6 * scale < Lx.cols in function 'Sample_Derivative_Response_Radius6'

It works fine if I replace AKAZE_create with a different feature descriptor extractor, e.g. ORB_create.

Am I doing something wrong or does detectAndCompute just not work with AKAZE_create?

I’m running Python 3.8.10 and OpenCV 4.6.0.

Asked By: neubert

||

Answers:

It seems that you are trying to limit the number of keypoints but for AKAZE_create there is no option to limit that number as Rotem pointed out in here

You can replace feat = cv2.AKAZE_create(500) with feat = cv2.AKAZE_create()

For documentation of AKAZE constructor here

Answered By: Ahmet Pokerce
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.