直方图均衡与色彩校正(iPhone/objective-C)

M-V*_*M-V 6 iphone image-processing

我试图在我的iPhone应用程序中为UIImage实现直方图均衡化方法(HE).

我读了以下内容:

http://en.wikipedia.org/wiki/Histogram_equalization

但它说:

仍然,应该注意的是,对RGB图像的红色,绿色和蓝色分量应用相同的方法可能会产生图像颜色平衡的显着变化,因为颜色通道的相对分布由于应用算法而改变.但是,如果首先将图像转换为另一个颜色空间,Lab颜色空间或特别是HSL/HSV颜色空间,则可以将算法应用于亮度或值通道,而不会导致图像的色调和饱和度发生变化.

那么这是一种可行的方法吗?

  1. 获取UIImage数据并将RGB转换为HSL
  2. 在亮度通道上应用HE
  3. 将数据转换回RGB
  4. 从数据创建新的UIImage

我想知道这会慢吗?另外,我是否必须以不同的方式处理8/16/24位数据,因为我不知道我的应用程序将使用哪种图像?或者我可以假设iPhone中的图像为24位?

我很欣赏任何指向色彩校正直方图均衡的Objective-C代码的指针.

我查看了下面的库,但它没有对HE进行任何颜色校正:

http://code.google.com/p/simple-iphone-image-processing/source/browse/#svn/trunk/Classes%3Fstate%3Dclosed

谢谢!

Nek*_*ios 1

是的,你可以这样做,那会起作用的。是的,它会“花费更多”,因为你必须来回进行转换 - 但如果你不想影响色调和饱和度,这就是你必须付出的代价。对于您正在校正的图像来说,这值得吗?这取决于您的应用程序,您可以接受性能与最佳质量之间的冲击吗?您可能只需要处理 8 位颜色分量,您可以假设图像为“24 位”,但那是 3 x 8 位分量。了解答案的唯一方法就是尝试。