我有一个围绕Brad Larson构建的照片编辑应用程序很棒 GPUImage框架。 我需要一种方法来分析图像的直方图,以便我可以返回它的范围。 意味着"活动"的实际范围。 我需要这个来改进我在应用程序中控制RGB复合曲线的工具。
有没有办法从GPUImage中的直方图滤镜中分析或检索硬数?还有其他办法吗?
答案 0 :(得分:0)
正如我在the Readme.md中为GPUImageHistogramFilter记录的那样:
此滤镜的输出为3像素高,256像素宽的图像 中心(垂直)像素包含对应于的像素 发生各种颜色值的频率。每个颜色值 占据256个宽度位置中的一个,从左边的0到255 正确的。可以为单个颜色生成该直方图 通道(kGPUImageHistogramRed,kGPUImageHistogramGreen, kGPUImageHistogramBlue),图像的亮度 (kGPUImageHistogramLuminance),或同时为所有三个颜色通道 (kGPUImageHistogramRGB)。
要获取直方图的数值,请将GPUImageHistogramFilter输出到GPUImageRawDataOutput并从中获取字节。结果将是具有0-255个值的256×3(宽度,高度)阵列,表示每个颜色分量的强度。您可以忽略第一行和最后一行,因为这些值仅出现在中心行中。
从那里,您可以分析通过此操作获得的直方图。