我正在尝试阅读" classifications.xml"和" images.xml"从一个在VisualStudio项目中工作正常的教程。现在如何将Swift XCode项目中的C ++库指向文件?将它们拖放到项目中不起作用。
这是原始代码。如何将cv :: Filestorage类指向我项目中的文件?现在它返回错误
cv::Mat matClassificationInts; // we will read the classification numbers into this variable as though it is a vector
cv::FileStorage fsClassifications("classifications.xml", cv::FileStorage::READ); // open the classifications file
if (fsClassifications.isOpened() == false) { // if the file was not opened successfully
std::cout << "error, unable to open training classifications file, exiting program\n\n"; // show error message
return(0); // and exit program
}
fsClassifications["classifications"] >> matClassificationInts; // read classifications section into Mat classifications variable
fsClassifications.release(); // close the classifications file
答案 0 :(得分:1)
当您将它们拖放到项目中时,它们最终会出现在应用包中。
可以使用此Swift代码找到这些文件的文件名:
Bundle.main.path(forResource: "classifications", ofType: "xml")
我不知道你的代码加载了什么,但是如果你刚刚使用&#34; classifications.xml&#34;,它会默认为当前文件夹,这不是iOS上的允许路径资源。
如果您尝试使用C ++进行互操作,可能更容易使用Objective-C。
喜欢的东西;
NSString *path = [[NSBundle main] pathForResource:@"classification" ofType:@"xml"];
char *pathCString = [path cStringUsingEncoding:NSUTF8StringEncoding];