gpt4 book ai didi

java - ImageJ:拉伸(stretch)直方图与均衡

转载 作者:行者123 更新时间:2023-11-29 05:23:46 27 4
gpt4 key购买 nike

我正在处理一个项目,在该项目中我必须显示一些图片(灰度),我注意到其中许多图片太暗而无法正确看清。

然后查看ImageJ API文档,我找到了类:ij.plugin.ContrastEnhancer

那里有两种方法,我很难理解它们的概念差异 stretchHistogram() 和 equalize() 都使图像更亮,但我仍然想了解它们的差异。

我的问题是:这些方法之间的概念差异是什么?

最佳答案

直方图拉伸(stretch)是您拥有低动态范围图像的地方 - 例如,所有像素强度都集中在比 8 位灰度图像的 0 到 255 范围更小的波段中。所以图像中最暗的像素可能是 84,最亮的像素可能是 153。拉伸(stretch)只是采用这个狭窄的范围,并执行线性映射到 0 到 255 的完整范围。像这样:

linear

直方图均衡化试图获得平坦的直方图 - 因此所有可能的像素强度在图像中均等表示。这意味着在直方图中有峰值的地方 - 某个范围内的值的集中 - 这些被扩展以覆盖更宽的范围,从而使峰值变平,并且在直方图中有低谷的地方,这些被映射到更窄的范围这样槽就被拉平了。同样,像这样:

equalised

对于具有低动态范围的单峰直方图,这两种操作大致相同,但在直方图已经覆盖整个强度范围的情况下,直方图均衡提供了有用的视觉改进,而拉伸(stretch)没有任何作用(因为有没有什么可拉伸(stretch)的)。用于均衡直方图的映射曲线源自累积分布(所以想象每个直方图条是所有先前值的总和)并且理论上可以实现完美平坦的直方图。然而,因为我们(通常)处理像素强度的离散值,直方图均衡化给出了如上所示的平坦直方图的近似值。

注意上面的图片were taken from this web page .

关于java - ImageJ:拉伸(stretch)直方图与均衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com