我没有使用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。也许这就是问题所在。
答案 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
我已经花了很多时间来修复崩溃,但是现在修复了。