C++; 我有我的C++代码,我可以在Linux /OSX/Android上运行它。现在的问题是ios。我只是尝试通过完整路径“/foo/blah/myapp.app/haar.xml”加载haar级联xml文件,并进行了一次检查
C++无法确认该文件是否存在,opencv也无法加载该文件。我是ios新手,我知道myapp.app可能是一个像android.apk dir一样的压缩dir 我已经确认我找对了地方……或者至少我希望我找对了!要检查我在C++中使用GETCWD来获得运行目录,我用文件路径确认XML文件。看起来是合法的 我能做什么?关于使用C++的LIB的一个好的部分是我可以为桌面/ Android /iOS使用一个代码库。我真的不想为了文件路径而将Objective-C混合到我的库中 提前谢谢 我使用的代码如下所示:C++; 我有我的C++代码,我可以在Linux /OSX/Android上运行它。现在的问题是ios。我只是尝试通过完整路径“/foo/blah/myapp.app/haar.xml”加载haar级联xml文件,并进行了一次检查,c++,ios,xml,opencv,filepath,C++,Ios,Xml,Opencv,Filepath,C++无法确认该文件是否存在,opencv也无法加载该文件。我是ios新手,我知道myapp.app可能是一个像android.apk dir一样的压缩dir 我已经确认我找对了地方……或者至少我希望我找对了!要检查我在C++中使用GETCWD来获得运行目录,我用文件路径确认XML文件。看起来是合法的 我能做什么?关于使用C++的LIB的一个好的部分是我可以为桌面/ Android /iOS使用一个代码库。我真的不想为了文件路径而将Objective-C混合到我的库中 提前谢谢 我使用的代码如下
std::ifstream fexists(face_haar_path.c_str());
if(!fexists.good()) {
std::cout << "Could not find any facehaar.xml" << std::endl;
return NO_FACE_HAAR_FILE;
}
face_haar.load(face_haar_path); //cv::CascadeClassifier face_haar
std::ifstream存在(face_haar_path.c_str());
如果(!fexists.good()){
std::cout在iOS应用程序中添加对文件位置的引用是完全不同的。首先将.xml
文件添加到您的Xcode项目中,并使用以下代码行加载haar级联。请注意,其中不应包含扩展名.xml
(例如:对于face\u frontal.xml
文件,级联名称应为face\u frontal
)
NSString*faceCascadePath=[[NSBundle mainBundle]
pathForResource:@“”
类型:@“xml”];
const CFIndex CASCADE\u NAME\u LEN=2048;
char*CASCADE\u NAME=(char*)malloc(CASCADE\u NAME\u LEN);
CFStringGetFileSystemRepresentation((CFStringRef)faceCascadePath,
你的名字,
级联(名称);
如果(!face_cascade.load(cascade_NAME)){
库特
NSString *faceCascadePath = [[NSBundle mainBundle]
pathForResource:@"<your_cascade_name>"
ofType:@"xml"];
const CFIndex CASCADE_NAME_LEN = 2048;
char *CASCADE_NAME = (char *) malloc(CASCADE_NAME_LEN);
CFStringGetFileSystemRepresentation( (CFStringRef)faceCascadePath,
CASCADE_NAME,
CASCADE_NAME_LEN);
if(!face_cascade.load(CASCADE_NAME)) {
cout << "Unable to load the face detector!!!!" << endl;
exit(-1);
}