Я заблудился в кроличьей норе, пожалуйста, потерпите меня.
Я пытаюсь использовать модуль OpenCV Stitching из дистрибутива 2.3.1 Win Superpack.Я перетащил все исходные файлы из / modules / stitching в проект Visual Studio, как можно лучше разрешил Include и Libs и получил его для компиляции. *
Первая странная ошибка во время выполнения, которую я имел, заключалась в том, что яНе удалось прочитать файл JPG с диска с imread()
.Это не выдало ошибку, но возвращало true для myImage.empty()
.Я вернулся к cvLoadImage()
, и тогда он заработал.
Теперь, после этого, появляется новая ошибка времени выполнения:
Необработанное исключение в 0x00870d8f в MyStitcher.exe: 0xC0000005: Доступнарушение записи местоположения 0x010e7000.
Это происходит в /modules/stitching/matchers.cpp при попытке передать ссылку на features.keypoints
в качестве аргумента detector_->detect()
.Я предполагаю, что detect()
должен заполнить ключевые точки с его результатом.features
представляется неинициализированным (у него 612933850 пустых ключевых точек в точке останова).Теперь это начинает звучать так, как будто исходный код, который я пытаюсь скомпилировать, просто сломан, но opencv_stitching.exe, который поставляется с предустановленным, работает просто отлично.Был ли он скомпилирован из другого источника?
Кстати, я не знаю, как использовать систему CMake для генерации проектов Visual Studio, как рекомендовано для OpenCV.Файл CMakeLists.txt в папке / modules / stitching не работает.Разве он не должен использоваться в качестве отправной точки?
* Одно замечание: CMakeLists.txt в / modules / stitching указывает некоторые библиотеки с именами opencv_core, opencv_imgproc, opencv_highgui и т. Д.(без указания версии), но библиотеки, включенные в суперпакет Win32 OpenCV 2.3.1 (на который я ссылаюсь), называются opencv_core231.lib, opencv_imgproc231.lib и т. д. Является ли это явным признаком того, что я использую несовпадающие двоичные файлы дляшить модуль?