如何以编程方式绘制UIImage的直方图?

时间:2010-12-07 10:59:01

标签: iphone objective-c cocoa-touch image-processing

如何以编程方式在iPhone上绘制一个image histogram的UIImage? e.g:

alt text

谢谢!

4 个答案:

答案 0 :(得分:2)

没有api。

编辑:iOS5引入了一个API。见克林的答案。

您需要获取图像的原始数据,计算颜色值并自己绘制直方图。

访问像素:How to get pixel data from a UIImage (Cocoa Touch) or CGImage (Core Graphics)?

使用CoreGraphics在自定义UIView子类中绘制直方图。

答案 1 :(得分:2)

您可以借助加速框架计算直方图。有功能vImageHistogramCalculation_ARGB8888()。 要调用此函数,您需要从UIImage创建vImage_Buffer。使用vImageBuffer_InitWithCGImage()功能。

有关详细信息,您可以将此框架添加到项目中,并阅读头文件中的文档:

Accelerate.framework /框架/ vImage.framework /接头/ vImage_Utilities.h Accelerate.framework /框架/ vImage.framework /接头/ Histogram.h

答案 2 :(得分:1)

其实有,我会把你的问题提到Brad Larson的回答:https://stackoverflow.com/a/10359305/300115

您可以在他的库中找到类GPUImageHistogramFilter:https://github.com/BradLarson/GPUImage

lib中的“Filter Showcase”演示已经有一个实时直方图分析的工作版本。 Live Histogram Analysis

答案 3 :(得分:0)

您可能对DSBarChart感兴趣。试一试。