假设我有一个 UIImage(或 NSData)对象,我的目标是将它与 libccv 一起使用,而无需事先将任何内容写入磁盘。我的问题是我不知道如何从这样的对象到 ccv_dense_matrix_t。
有谁知道如何做到这一点?
假设我有一个 UIImage(或 NSData)对象,我的目标是将它与 libccv 一起使用,而无需事先将任何内容写入磁盘。我的问题是我不知道如何从这样的对象到 ccv_dense_matrix_t。
有谁知道如何做到这一点?
在即将发布的 0.2 版本中,我重载了 ccv_read 函数,以便您可以将内存区域读入 ccv。首先,您可以从 UIImage ( http://developer.apple.com/library/mac/#qa/qa1509/_index.html ) 获取 CGImageRef,从那里,您可以创建一个 ccv_dense_matrix_t 对象(是否复制或不取决于您)使用 ccv_read 很简单:
ccv_dense_matrix_t* x = 0;
ccv_read(data, &x, CCV_IO_ARGB_RAW | CCV_IO_GRAY, height, width, stepSize);
该库仅提供 ccv_read() 来在已发布的 API 中进行此转换。如果您阅读此函数的代码,您可能会发现可以链接到接受数据指针的内部函数。
也就是说,当您可以通过几个 iOS API 调用将数据保存在应用程序的 tmp 目录中的文件中时,为什么还要麻烦呢?如果文件很小,您创建它,使用它,然后删除它可能永远不会真正写入闪存 - 它只会驻留在系统缓存中。