0

iOS 上の画像に任意の 3D Luts を適用しようとしていますが、行き詰っています。

私は一生、CIColorCube のキューブ データを正しくフォーマットする方法を理解できません。

WWDC のビデオから取った簡単なスクリーン グラブに基づいて、できることはすべて実行しましたが、実際に必要なのは、元になる作業用のテンプレートです。ImageApp サンプル コードに示されている手続き型 ICC 生成キューブではなく、ハード コーディングされたキューブの例を含むドキュメントはありますか?

現在、私のキューブ データは次のようになっています (簡潔にするために中央を切り取っています)。エラーがスローされます:

"Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<CIColorCube 0xb46a850> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key inputCubedata.'"

どんな助けでも大歓迎です、私はこれについて私の耳を引き裂いています。CIColorCube が期待しているものの販売された例を見つけることができません (単なる説明ではなく、実際の例のように)。

uint8_t color_cube_data[4096*4] = {
    0, 0, 0, 1,
    17, 0, 0, 1,
    33, 0, 0, 1,
    51, 0, 0, 1,
    68, 0, 0, 1,
    84, 0, 0, 1,
    102, 0, 0, 1,
    119, 0, 0, 1,
-----etc etc etc
    153, 255, 255, 1,
    170, 255, 255, 1,
    186, 255, 255, 1,
    204, 255, 255, 1,
    221, 255, 255, 1,
    237, 255, 255, 1,
    255, 255, 255, 1
};
4

2 に答える 2

2

詳細な情報がなければ、すべての問題を解決することはできませんが、現在のエラーはこれが原因である可能性があります。キューブ データを設定するコード行が次のようになっていることを確認してください...

[_colorCube setValue:color_cube_data forKey:@" inputCubeData "];

これではない...

[_colorCube setValue:color_cube_data forKey:@" inputCubedata "];

于 2012-06-26T08:08:20.373 に答える
1

3D LUT は、引数として CIFilter に渡す前に、NSData にラップする必要があります。キューブ値の範囲は [0.0 : 1.0] です

NSData * cube_data = [NSData dataWithBytes:color_cube_data length:4096*sizeof(float)*4];

[filter setValue:input_image forKey:@"inputImage"];
[filter setValue:cube_data forKey:@"inputCubeData"];
[filter setValue:[NSNumber numberWithFloat:16] forKey:@"inputCubeDimension"];

inputCubeDimension の値は厳密に 2 のべき乗です。

于 2012-06-30T10:57:14.833 に答える