我创建了我认为应该使用调整为白色的CIColorMonochromeFilter
的合适灰度级CIFilter。这对我来说看起来很灰色,但我不是专家,所以我只是想知道这是否是灰度滤镜的准确实现。如何使用CoreImage过滤器实现灰度过滤器?
我还没有编写代码来转储和测试像素,但基于图像的格式已经是RBG,我很好奇输出图像是什么格式。例如,我将如何去了解每个像素是一个组件还是三个组件?
我知道CIImage只是一个图像的配方,我必须使用CGImageRef来最终呈现。我只是不明白我应该期望数据是什么像素格式。
CIFilter * monoChromeFilter = [CIFilter filterWithName:kCIColorMonochromeFilterName];
[monoChromeFilter setValue:self.inputImage forKey:kCIInputImageKey];
CIColor * white = [CIColor colorWithRed:1.0 green:1.0 blue:1.0];
[monoChromeFilter setValue:white forKey:kCIInputColorKey];
那么,有什么问题吗?仅仅是你不知道如何读取图像的像素值?这在堆栈溢出中有很好的记录。 – matt
或多或少,我所做的实际上是一个合适的灰度过滤器,例如单色白色==灰度。我很好奇输出格式,但这更多的是次要问题。 –