除了单色外,我需要将图像转换为灰度。例如,如果图像中有一些红色(如红色总线),它将保持彩色,但图像的其余部分将保持黑色和黑色。白。
我认为我应该能够通过单独遍历每个像素来完成这项工作的基本工作,例如:http://brandontreb.com/image-manipulation-retrieving-and-updating-pixel-values-for-a-uiimage。我假设如果红色成分超过一定数量,我只会留下某些像素,绿色/蓝色低于一定量。否则,将像素设置为灰度。这是一个好方法吗?
我对是否可以对实时相机输入进行更感兴趣,例如使用Core Image
过滤器或使用GPUImage
,但我无法找到合适的过滤器。有什么建议吗?
更新
这似乎可以使用GPUImage
GPUImageLookupFilter
,https://stackoverflow.com/a/19340583/334982
我在Photoshop中创建了一个lookup.png文件,将除红色以外的所有颜色的饱和度都降为0.这样做没问题,但似乎并没有使所有颜色变灰。例如,我的皮肤看起来仍然看起来很肤色,而我的棕色桌子仍然相当棕色。