【问题标题】:Reusing OpenCV 2.3.1 bundled image Stitching module重用 OpenCV 2.3.1 捆绑的图像拼接模块
【发布时间】:2011-09-24 07:15:22
【问题描述】:

我在兔子洞里迷路了,请多多包涵。

我正在尝试使用 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 指定了一些 名为 opencv_core、opencv_imgproc、opencv_highgui 等的库(不含 版本指示)但 OpenCV 2.3.1 Win32 中包含的库 superpack(我链接到)被命名为 opencv_core231.lib, opencv_imgproc231.lib 等。这是否清楚表明我正在使用 拼接模块的二进制文件不匹配?

【问题讨论】:

  • Stitching 是最新且不太稳定的 OpenCV 模块。如果您打算尝试这个模块,那么我建议您将源更新到最新的 OpenCV 主干。树干中的拼接已经被分割成 dll 和几个样本。还修复了很多错误。
  • 好的,有趣。我充满希望,因为它似乎产生了很好的结果。今天我从 SVN 下载了当前的 /modules/stitching 并尝试将它与 2.3.1 库链接。显然,这没有奏效。 :) 如果我有任何问题,我会取回整个后备箱并发回这里。谢谢安德烈。
  • 顺便说一句,如果您在从源代码构建 OpneCV 时遇到问题,可以查看 OpenCV 文档中的 tuturial
  • 我在这里发布了另一个问题stackoverflow.com/questions/7493159/…

标签: visual-studio-2010 opencv


【解决方案1】:

在从 OpenCV SVN 构建最新版本后,我得到了这个工作。自 231 版本以来,拼接模块已经走过了漫长的道路。

【讨论】:

    猜你喜欢
    • 2019-01-01
    • 2014-08-28
    • 2011-08-26
    • 2013-06-12
    • 1970-01-01
    • 2013-04-22
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多