【发布时间】:2014-10-01 05:00:20
【问题描述】:
我正在尝试进行一些图像处理,为此我获得了 8 位灰度图像。我应该通过生成一个查找表来更改图像的对比度,该表可以增加 50 到 205 之间像素值的对比度。我使用以下 MATLAB 代码生成了一个查找表。
a = 2;
x = 0:255;
lut = 255 ./ (1+exp(-a*(x-127)/32));
当我绘制lut 时,我得到如下图:
到目前为止一切都很好,但是我该如何提高 50 到 205 之间像素值的对比度?变换映射的最终图应该是这样的:
【问题讨论】:
-
为每个像素强度 (x) 分配 y 中的值。因此,例如,值为 50 的像素分配了 255./(1+exp(-2*(50-127)/32)) ~0 的值,为 205 的像素分配了 255./(1+exp (-2*(205-127)/32)) ~255
-
Y = lut(x+1) 是新值
-
@ASantosRibeiro,谢谢。此外,当我增加“a”的值(当前为 2)时,我看到图像变得更亮。你能告诉我这是为什么吗?或者'a'应该是一个永远不能改变的固定值?
-
@DavidNorman -
a控制曲线的变化率。当a增加时,变化率增加,这意味着等式中的exp部分将更快地趋向于零。通过取其倒数,当a更大而不是更小时,随着强度的增加,您将更快地获得更高的值。因此,a -> infty对比度变得更高。
标签: image matlab image-processing lookup contrast