我正在尝试使用GPUImage在我的应用中实现直方图。 GPUImage github上的示例项目名为FilterShowcase,它带有一个很好的直方图生成器,但由于应用程序的UI设计,我正在制作我需要编写自己的自定义图形来显示直方图值。有谁知道如何从GPUImageHistogramFilter获取RGB值,以便将它们弹出到我自己的图形中?
答案 0 :(得分:1)
GPUImageHistogramFilter生成256x3图像,其中256x1行包含RGB通道中打包的直方图的红色,绿色和蓝色值。 iOS不支持1像素高渲染帧缓冲,因此我必须将其填充为三个像素高。
GPUImageHistogramGenerator创建您在示例应用程序中看到的可见直方图叠加,它通过接收256x3图像并使用自定义着色器渲染输出图像来实现,该自定义着色器的颜色取决于输入颜色值。这是一个快速的GPU上实现。
如果你想做一些不使用着色器的自定义,你可以使用GPUImageRawDataOutput提取直方图值并拉出中心256x1线的RGB分量。从那里,你可以绘制你的界面覆盖的其余部分,虽然使用Core Graphics完成的事情可能会咀嚼很多处理能力,以便在每一帧上更新。