Ошибка открытия CV ORB при использовании firstLevel! = 0 - PullRequest
0 голосов
/ 13 января 2020

Я использую openCV 3.3.0 на Python для сопоставления функций между изображениями, использующими ORB. Я тестирую различные значения параметров для конструктора ORB, чтобы увидеть, как отличаются ответы. Все работает нормально, пока я не изменю значение параметра firstLevel на значение, отличное от значения по умолчанию (которое равно 0). Устанавливая все остальные параметры в их значения по умолчанию (которые хорошо работают для меня), я получаю следующую ошибку:

> Traceback (most recent call last):
>  File "<pyshell#76>", line 1, in <module>
>     kp1, des1 = orb.detectAndCompute(img1,None) error: C:\projects\opencv-python\opencv\modules\core\src\matrix.cpp:528:
> error: (-215) 0 <= roi.x && 0 <= roi.width && roi.x + roi.width <=
> m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <=
> m.rows in function cv::Mat::Mat

Я не нашел никого здесь или на других форумах, описывающих подобную проблему. Документация по классу довольно ограничена, но не похоже, что то, что я делаю, является незаконным:

firstLevel : уровень пирамиды, в которую помещается исходное изображение. Предыдущие слои заполнены увеличенным исходным изображением.

Я предполагаю, что это значение должно быть между 0 и nLevels - 1 (что в моем случае, я устанавливаю его в 1). Согласно приведенной выше цитате, кажется, что класс должен обрабатывать апскейлинг самостоятельно, но, очевидно, проблема в этом.

Я мог бы масштабировать изображение самостоятельно, а затем передать масштабированное изображение в ORB с firstLevel до 0, но, тем не менее, мне интересно: кто-нибудь сталкивался с этой проблемой? Как вы решили это / обойти это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...