Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 映射强度级别以创建平面直方图_Image Processing - Fatal编程技术网

Image processing 映射强度级别以创建平面直方图

Image processing 映射强度级别以创建平面直方图,image-processing,Image Processing,请参考以下链接 在此算法中,称为“优先级”的参数与像素相关联。我们根据什么为像素分配优先级?例如,让我们假设直方图中有25个强度级别为10的像素。那么哪个像素会有什么优先级呢?我们怎么决定呢。是否基于像素的位置 编辑: 这个问题不询问什么是直方图均衡化,也不询问如何进行映射以从输入图像获得均衡图像。事实上,这个问题涉及手动或使用histeq获得输出图像(均衡图像)后的后处理问题是如何从不太平坦的直方图中得到一个几乎平坦的直方图例如,我们从256位直方图(不太平坦)中得到一个64位直方图(平坦)

请参考以下链接

在此算法中,称为“优先级”的参数与像素相关联。我们根据什么为像素分配优先级?例如,让我们假设直方图中有25个强度级别为10的像素。那么哪个像素会有什么优先级呢?我们怎么决定呢。是否基于像素的位置

编辑:

这个问题不询问什么是直方图均衡化,也不询问如何进行映射以从输入图像获得均衡图像。事实上,这个问题涉及手动或使用histeq获得输出图像(均衡图像)后的后处理问题是如何从不太平坦的直方图中得到一个几乎平坦的直方图例如,我们从256位直方图(不太平坦)中得到一个64位直方图(平坦)。我们如何将像素分配到不同的存储单元,从而得到一个平坦的直方图。我开始了解在我给出的链接(上面)中讨论的算法,但是术语优先级不清楚如何计算它。因此,基本上问题在于如何从256位直方图中获取64位直方图,或者通过将像素重新分布到各个位,从256位直方图中获取一个平坦的256位直方图。

例如,我得到了一个映射到4个箱子的图像,如下所示

正如您所见,直方图之间存在一些差异,一个是由histeq生成的,另一个是手动创建的。箱子位置和像素数量如下所示:

对于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
对于由手动均衡化(我们可以在这里看到像素的非均匀分布)生成的直方图,以下是分布

   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中得到的那样。上述链接(由我给出)指的是关于如何执行的算法,但它指的是我无法理解的术语优先级我只想知道一个像素的优先级是多少,我们如何计算它。

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

(这肯定会产生一些工件,但我想这就是答案。您可能可以通过某种方式修复它们。)


PS-还值得一提的是,“直方图均衡化”不会生成平坦的直方图,而是线性累积直方图。

它被称为“直方图均衡化”,并在这里用一个示例进行描述。。。感谢@MarkSetchell的回复。是的,它的直方图均衡化,但这一步使直方图平坦,如上述链接所述,是否包含在matlab的histeq()函数中?因为我已经看到,我们使用imhist()得到的直方图通常不是那么平坦,但我认为这个过程可以使直方图真正平坦,尽管我没有尝试过。@rayryeng请再看一次这个问题。可能我一开始没能澄清,但现在我给它加了一个例子。这个问题可能离题了。考虑迁移到另一个网站…可能是信号处理StackExchange:。这只涉及概念性的想法,与编程无关。@rayryeng你的意思是说dsp.stackexchange.com处理概念性的想法?我是新来的,如何迁移到其他网站。你也帮不上忙吗?