0

GPUImage フレームワークの GPUImage3x3ConvolutionFilter を使用しようとしていますが、機能していません。

これは私のコードです。白い画像しか得られません。

- (UIImage *)convolution:(UIImage *)inputImage{

    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage];

    GPUImage3x3ConvolutionFilter *filter = [[GPUImage3x3ConvolutionFilter alloc] init];
    [filter setConvolutionKernel:(GPUMatrix3x3){
        {-1.0f,  0.0f, 1.0f},
        {-2.0f,  0.0f, 2.0f},
        {-1.0f,  0.0f, 1.0f}
    }];

    [stillImageSource addTarget:filter];
    [stillImageSource processImage];

    return stillImageSource.imageFromCurrentlyProcessedOutput;

}

私も変更しようとしています:

return stillImageSource.imageFromCurrentlyProcessedOutput;

為に:

return filter.imageFromCurrentlyProcessedOutput;
4

1 に答える 1

3

これは、フレームワークのバグが原因でした。画像のアルファ チャネルに対して畳み込みも適用されていたため、この[filter imageFromCurrentlyProcessedOutput]場合はアルファ チャネル値が 0 になりました。これを修正するコードをコミットしました。

[stillImageSource imageFromCurrentlyProcessedOutput]カメラ入力から未処理の画像を直接取得することはできないため、 は何もしないことに注意してください。-imageFromCurrentlyProcessedOutputまた、 GPUImageOutput のプロパティではないため、ここではドット表記を使用しません。

于 2013-01-21T21:16:50.003 に答える