我有一个CGImage,我想确定它是主亮还是暗黑。我当然可以遍历矩阵,看看是否有足够数量的像素超过了所需的阈值。但是,由于我不熟悉图像处理,我认为CoreGraphics或Quartz中必须有内置函数,这些函数更适合,甚至可能加速。
答案 0 :(得分:2)
CoreGraphics(又名Quartz 2D)没有任何功能。 Mac OS X上的CoreImage有CIAreaAverage
和CIAreaHistogram
,这可能会对您有所帮助,但我认为iOS(从5.0.1开始)不具备这些过滤器。
iOS确实有the Accelerate framework。 vImageHistogramCalculation_ARGBFFFF
功能和相关功能可能对您有所帮助。
答案 1 :(得分:1)
以下是如何在iOS应用中使用CIAreaAverage:
#include
答案 2 :(得分:0)
有一种更快,更有效的方法来测量特定的度量而不是强度直方图 - 事实上,如果你打算用它做的就是测量。
图像键控是另一种;它由强度的总和平均值决定,但不需要对它们进行分级。图像键控公式(我有,如果需要)返回的值可以用于局部自适应色调范围映射(您想要的)使用简单的伽玛调整(像素的强度值,在图像键值)。
这并不难,而且很明显,您拥有使用这种更快,更有效的方法来区分明暗图像的技能和经验。
更重要的是,您应该建立一种模式,并在任何地方使用图像公制公式代替直方图。它们旨在解释信息,而不仅仅是收集信息。不仅如此,它们通常是可互操作的,这意味着它们可以一个堆叠在另一个之上,就像Core Image过滤器一样。
具体内容请阅读:
适应图像键的Gamma校正,Laurence Meylan的高动态范围图像的色调映射第14页。