2

我正在玩 CI 过滤器,但在去噪方面遇到了麻烦。基本上我从中得到一个空白图像。

我确信我只是缺少一些简单的东西。

这是我的代码:

CGImageRef imageRef = [self.iv.image CGImage];
CIContext *context = [CIContext contextWithOptions:nil]; // 1
CIImage *ciImage = [CIImage imageWithCGImage:imageRef]; // 2
CIFilter *filter = [CIFilter filterWithName:@"CINoiseReduction" ];
[filter setDefaults];
[filter setValue:ciImage forKey:@"inputImage"]; // 3
CIImage *ciResult = [filter valueForKey:kCIOutputImageKey]; // 4
CGImageRef cgImage = [context createCGImage:ciResult fromRect:[ciResult extent]];
UIImage *img = [UIImage imageWithCGImage:cgImage];
self.iv.image = img;
4

1 回答 1

2

Aaaaaaand... 这是因为该过滤器在 iOS 上不可用,因此该行:

CIFilter *filter = [CIFilter filterWithName:@"CINoiseReduction" ];

...返回空值。因为,你知道,这可能是你真正想要的 :)

这是 CI 过滤器列表,以及关于可用性的说明

于 2013-08-14T17:32:42.233 回答