UIImage (または NSData) オブジェクトがあり、私の目標は、事前にディスクに何も書き込まずに libccv で使用することだとしましょう。私の問題は、そのようなオブジェクトから ccv_dense_matrix_t に到達する方法がわからないことです。
誰もこれを達成する方法について考えを持っていますか?
UIImage (または NSData) オブジェクトがあり、私の目標は、事前にディスクに何も書き込まずに libccv で使用することだとしましょう。私の問題は、そのようなオブジェクトから ccv_dense_matrix_t に到達する方法がわからないことです。
誰もこれを達成する方法について考えを持っていますか?
次の 0.2 リリースでは、メモリ領域を ccv に読み込めるように ccv_read 関数をオーバーロードしました。まず、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);
ライブラリは、公開された API でこの変換を行うために ccv_read() のみを提供します。この関数のコードを読むと、データ ポインタを受け取るリンク可能な内部関数が見つかる場合があります。
とはいえ、数回の iOS API 呼び出しでアプリの tmp ディレクトリにあるファイルにデータを保存できるのに、なぜ面倒なことをするのでしょうか? ファイルが小さい場合は、ファイルを作成して使用し、削除すると、実際にはフラッシュに書き込まれず、システム キャッシュに存在するだけになります。