我正在尝试使用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
有关如何执行此操作的任何指针。
答案 0 :(得分:0)
不仅要提供添加的资源路径,还必须通过swift的Bundle.main.path API获取路径。
let path = Bundle.main.path(forResource: "model.yml", ofType: "gz");
使用此api,可以获取资源的路径并将其用于检测边缘。