OpenCV imread()在iOS上不返回任何图像数据

Mon*_*art 5 opencv ios

我正在尝试使用OpenCV的imread()函数在a中加载JPEG图像cv::Mat,但它在iOS上失败(相同的代码适用于OS X).返回的矩阵已分配且有效,但为空(即它不包含任何数据).

在iOS下执行功能imread()imwrite()工作吗?

tho*_*ler 8

它起作用,至少当你在运行的应用程序的Documents-Directory中保存和加载时.

//Creating Path to Documents-Directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"ocv%03d.BMP", picNum]];
const char* cPath = [filePath cStringUsingEncoding:NSMacOSRomanStringEncoding];

const cv::string newPaths = (const cv::string)cPath;

//Save as Bitmap to Documents-Directory
cv::imwrite(newPaths, frame);
Run Code Online (Sandbox Code Playgroud)


Ham*_*mer 6

iOS定义了自己的文件系统,我不相信imread()和imwrite()接口.您需要使用本机功能来加载和保存图像,但是一旦获得指向图像数据的指针,您可以将其包装在cv :: Mat中,然后在opencv中处理它.为iOS编写自己的cv_imread(),cv_imwrite()函数应该不难.