我正在尝试使用OpenCV的imread()
函数在a中加载JPEG图像cv::Mat
,但它在iOS上失败(相同的代码适用于OS X).返回的矩阵已分配且有效,但为空(即它不包含任何数据).
在iOS下执行功能imread()
和imwrite()
工作吗?
它起作用,至少当你在运行的应用程序的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)
iOS定义了自己的文件系统,我不相信imread()和imwrite()接口.您需要使用本机功能来加载和保存图像,但是一旦获得指向图像数据的指针,您可以将其包装在cv :: Mat中,然后在opencv中处理它.为iOS编写自己的cv_imread(),cv_imwrite()函数应该不难.
归档时间: |
|
查看次数: |
6595 次 |
最近记录: |