我迷失在一个兔子洞里,请耐心等待。
我正在尝试使用2.3.1 Win superpack发行版中的OpenCV Stitching模块。我将/ modules / stitching中的所有源文件拖到Visual Studio项目中,尽可能地解析了Includes和Libs,并将其编译。*
我遇到的第一个奇怪的运行时错误是我无法使用imread()
从磁盘读取JPG文件。它没有抛出错误,但对myImage.empty()
返回true。我回到cvLoadImage()
,然后就有效了。
现在,在那之后,出现了一个新的运行时错误:
MyStitcher.exe中0x00870d8f处的未处理异常:0xC0000005:访问冲突写入位置0x010e7000。
当尝试将features.keypoints
的引用作为detector_->detect()
参数传递时,会发生在/modules/stitching/matchers.cpp中。我假设detect()
应该用它的结果填充关键点。 features
似乎未初始化(断点处有612933850个空关键点)。现在这开始听起来像我正在尝试编译的源只是坏了,但预建的opencv_stitching.exe工作得很好。它是从不同来源编译的吗?
顺便说一下,我不知道如何使用CMake系统为OpenCV生成Visual Studio项目。 / modules / stitching文件夹中的CMakeLists.txt文件不起作用。它不应该被用作起点吗?
*关于此的一点说明:/ modules / stitching中的CMakeLists.txt指定了一些 libs命名为opencv_core,opencv_imgproc,opencv_highgui等(没有 版本指示)但OpenCV 2.3.1 Win32附带的库 superpack(我链接到的)名为opencv_core231.lib, opencv_imgproc231.lib等。这是我正在使用的明确指示 拼接模块的二进制文件不匹配?
答案 0 :(得分:1)
我在从OpenCV SVN构建最新版本后得到了这个工作。自231发布以来,拼接模块已经走过了漫长的道路。