映射强度级别以创建平直线图

时间:2016-01-23 10:21:10

标签: image-processing

请参阅以下链接

distributing equal number of pixels in each intensity level

在算法中,名为" Priority" 的参数与像素相关联。我们在什么基础上为像素分配优先级?例如,假设我们在直方图中有25个像素,强度等级为10。那么哪个像素将具有什么优先级?我们如何决定。它是基于像素的位置吗?

修改

这个问题不会询问什么是直方图均衡或如何进行映射以便从输入图像获得均衡图像。实际上,一旦手动或使用histeq获得输出图像(均衡图像),该问题就处理后处理。 问题是我们如何从直方图得到一个几乎平坦的直方图,而不是那么平坦,例如我们从256个bin直方图(不那么平坦)获得64 bin直方图(flat)。我们如何将像素分布到不同的区域以获得平直的直方图。我开始了解我在上面给出的链接(上面)中讨论的算法,但是术语 PRIORITY 在我们如何计算它时并不清楚。所以基本上的问题是关于从256个bin直方图中获取64个bin直方图,或者通过将像素重新分配到bin来从256个bin直方图中获得平坦的256个bin直方图。

例如,我将图像映射到4个区间,如下所示

Image showing intensities distributed in 4 bins

正如您所看到的,直方图之间存在一些差异,一个是由histeq生成的,另一个是手动创建的。 bin位置以及像素数如下:

对于由histeq生成的直方图(我们可以看到这里的像素均匀分布)以下是分布

   Bin number  No. of pixels
       1             4207
      86             4146
     171             4314
     256             3965 

对于手动均衡产生的直方图(我们可以看到这里的像素分布不均匀)以下是分布

  Bin number  No. of pixels
       1        2678
      86        5583
     171        5061
     256        3310

在我的图像中总共有16632个像素,需要将它们平均分成这4个区间,即每个区间4158个像素。现在我如何重新分配它们以获得平坦的数据,例如我们在histeq的情况下得到的。上面提到的链接(由我给出)是指关于如何操作的算法,但它指的是我无法理解的术语优先级我只是想知道像素的优先级是什么,我们如何计算它。

1 个答案:

答案 0 :(得分:1)

您可以根据亮度对N个像素进行排序。并将像素索引I映射到亮度B,公式B = I / N.(亮度将位于0..1)

(这肯定会产生一些文物,但我猜是答案。你可以用某种方式修复它们。)

PS - 另外值得一提的是“直方图均衡”不会产生平直的直方图,而是产生线性累积直方图。