【问题标题】:Error -215 trainDescCollection[iIdx] Python OpenCV错误 -215 trainDescCollection[iIdx] Python OpenCV
【发布时间】:2013-12-24 07:21:03
【问题描述】:

我正在匹配两张图片,并且在 80% 的情况下都有效,但在某些情况下它会崩溃并显示以下消息:

... 匹配 = matcher.match(d1, d2) 错误: ......\opencv-2.4.6\modules\features2d\src\matchers.cpp:365: 错误: (-215) trainDescCollection[iIdx].rows

其中d1d2 是两个图像的描述符。我在谷歌搜索但没有找到答案。也许这是一个愚蠢的错误,但我是这个领域的菜鸟。

此外,我在本网站上阅读了以下声明:“它仅适用于 SIFT 和 SURF 描述符(它们是非免费的)”。你知道SIFT和SURF是否受版权保护?

谢谢大家!

【问题讨论】:

  • 你应该考虑稍微清理一下你的问题——你问的是两个不同的事情。我会更多地关注技术问题,并提供更多关于你到底尝试了什么以及你试图匹配什么样的图像的细节。提供更多代码。

标签: python opencv surf sift


【解决方案1】:

你说得对!我得到了问题的提示(我认为)。我拍摄了出现问题的两张图像,然后在另一台计算机上运行相同的代码。好吧,在另一个我没有得到错误。 在崩溃的那个我有这些包:

gdal 1.10.1
numpy 1.7.1
opencv-python 2.4.6
scipy 0.12.0

在我拥有的那一个中:

...
gdal 1.9.2
numpy 1.6.2
opencv-python 2.4.3
scipy 0.11.0
...
scikit-image 0.7.2
scikit-learn 0.13.1
scipy 0.11.0
scipy-stack 12.11.29
simplecv 1.3
...

等等。更多:D。似乎我错过了一些东西,但我不知道为什么它会随着更新版本而崩溃。现在我正在安装 scipy-stack 和 scipy 和 scikit-image ...也许错误是缺少软件包

【讨论】:

    【解决方案2】:

    这是 opencv 中的一个开放错误。 https://github.com/Itseez/opencv/issues/5700

    尝试使用较小的图像(例如,获取子集和/或下采样)。看起来该实现涉及一个棘手的(贬义意义上的)优化,该优化假设特征的数量(在其中一张图像中)小于某种神奇的 2 次方。

    【讨论】:

      猜你喜欢
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 2016-06-20
      • 2018-04-30
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多