在iOS上拼接全景崩溃与cvflann :: anyimpl :: bad_any_cast

时间:2017-01-20 11:42:22

标签: c++ ios opencv casting

我没有使用c ++的经验,但我需要在iOS应用程序中与OpenCV进行交互。我正确地构建它但在调用一些c ++代码时崩溃了。

以下代码因此邮件崩溃:.pcap.h

libc++abi.dylib: libc++abi.dylib: terminating with uncaught exception of type cvflann::anyimpl::bad_any_cast
terminating with uncaught exception of type cvflann::anyimpl::bad_any_cast

我认为这是因为bool stitch(const std::vector <cv::Mat> & images, cv::Mat &result) { Stitcher stitcher = Stitcher::createDefault(false); Stitcher::Status status = stitcher.stitch(images, result); <-- Crash! if (status != Stitcher::OK) { return false; } return true; } 的输入或输出是不正确的类型,但我无法弄清楚我需要提供什么或如何转换它。

我调用的函数定义如下:

stitch(...)

其中Status stitch(InputArrayOfArrays images, OutputArray pano); InputArrayOfArrays都是_InputArray

的别名

怎么办?

编辑:这是使用OpenCV 3.0,我认为我使用的示例代码是OpenCV 2.4。也许这就是问题所在。

4 个答案:

答案 0 :(得分:2)

我在IOS中发生了与导入相关的类似问题,添加了

#import <opencv2/opencv.hpp>

导致一堆链接器警告,并且最终对任何opencv函数的每次调用都因上述错误而失败,在我将上面的导入替换为更具体的一个后,问题就消失了:

#import <opencv2/imgcodecs.hpp>

我认为问题可能与导入订单或导入重复有关,请注意希望它有帮助......

答案 1 :(得分:1)

这是一段时间在openCV中发生的错误,它只在调试模式下崩溃输出此错误。尝试产品 - &gt;方案 - &gt;编辑Scheme并更改&#34; Run&#34;的构建配置。从Debug到Release。

答案 2 :(得分:0)

删除opencv.hpp的包含,支持最小的包含对我的工作。以下是我在案件中最终得到的内容。

#import <opencv2/calib3d.hpp>
#import <opencv2/features2d.hpp>
#import <opencv2/xfeatures2d.hpp>
#import <opencv2/imgproc/imgproc.hpp>

当时我在调用FlannBasedMatcher :: knnMatch的某个地方收到了bad_any_cast,在找到这个解决方案之前尝试了很多“修正”。

谢谢!

答案 3 :(得分:0)

相同的崩溃固定为使用以下代码:

使用适用于iOS应用的开放式Cv 2.4.9拼接版。另外,使用此代码将对iOS App很有用

https://github.com/foundry/OpenCVSwiftStitch

我已经花了很多时间来修复崩溃,但是现在修复了。