Я успешно скомпилировал модуль opencv-contrib с помощью cmake на visual studio 2017.
Я пытаюсь запустить пример регистрационного кода, указанный здесь как есть.
Для всех функций (testShift, testEuclidean и т. Д.) Я получаю сбой во время выполнения в следующей строке:
Ptr<Map> mapPtr = mappPyr.calculate(img1, img2);
Ниже приведен фрагмент кода сбоя в mapperpyramid.cpp в MapperPyramid :: метод расчета:
Ptr<Map> MapperPyramid::calculate(InputArray _img1, InputArray image2, Ptr<Map> init) const
{
Mat img1 = _img1.getMat();
Mat img2;
if(!init.empty()) {
// We have initial values for the registration: we move img2 to that initial reference
init->inverseWarp(image2, img2);
} else {
init = baseMapper_.getMap(); <-- This is the crashing line
img2 = image2.getMat();
}
Ниже приведено сообщение об исключении:
Исключение, сгенерированное по адресу 0x0000000000000000 в Reg_Test.exe: 0xC0000005: нарушение прав доступа, местоположение выполнения 0x0000000000000000.
Я также проверил, что baseMapper_ не равен NULL. Переменная init пустая, но предполагается, что она инициализируется аварийной строкой.