结构化边缘检测-OpenCV-IOS

时间:2018-07-23 08:14:23

标签: ios opencv image-processing opencv3.0 edge-detection

我正在尝试使用piotr dollar模型来检测IOS中的边缘,如此处建议的那样。 https://docs.opencv.org/3.1.0/d0/da5/tutorial_ximgproc_prediction.html

String modelFilename = "./model.yml.gz";
Ptr<StructuredEdgeDetection> pDollar = createStructuredEdgeDetection(modelFilename);
pDollar->detectEdges(image, edges);

以上代码在我的机器上可以运行。 (苹果系统)。我无法使其在IOS上运行。 我收到以下错误。

  libc++abi.dylib: terminating with uncaught exception of type cv::Exception: OpenCV(3.4.2) 
../cv3.4/opencv-3.4.2/modules/ximgproc/src/structured_edge_detection.cpp:432: error: (-215:Assertion failed) 
modelFile.isOpened() in function 'StructuredEdgeDetectionImpl'

我已经查看了以下链接。

https://stackoverflow.com/a/49753953/381786 https://github.com/opencv/opencv/issues/8106

有关如何执行此操作的任何指针。

1 个答案:

答案 0 :(得分:0)

不仅要提供添加的资源路径,还必须通过swift的Bundle.main.path API获取路径。

let path = Bundle.main.path(forResource: "model.yml", ofType: "gz"); 

使用此api,可以获取资源的路径并将其用于检测边缘。