图像的对比度和强度之间的差异

信息处理 图像处理 matlab
2022-01-09 05:22:22

我想在 MATLAB 中生成 10 个级别的灰度楔形图像,然后增加和减少它的强度。通过高强度,我的意思是映射将图像中的灰度强度级别从较低值增加到较高值。

我尝试的示例是在 10 级灰度楔形图像上执行的:

0   28   57   85  113  142  170  198  227  255

我正在使用该功能imadjust为了增加我使用的强度级别:

 imadjust(grayStepImage, [.35 .75], [0.7 0.8])

输出:

179  179  179  179  184  192  199  204  204  204

以及图像形式的结果:

在此处输入图像描述

同样,为了降低我使用的强度

imadjust(grayStepImage, [.35 .75], [0.1 0.39])

原始和修改的级别是:

0   28   57   85  113  142  170  198  227  255


26   26   26   26   43   64   84   99   99   99

以及图像形式的结果:

在此处输入图像描述

我实际上是在增加/降低图像的强度吗?这些操作与增加和减少图像对比度的情况有什么关系?

我对对比度的了解是,

对比度定义为图像最暗和最亮区域之间的分离。增加对比度,你增加了黑暗和明亮之间的分离,使阴影更暗,高光更亮。

这是否意味着,如果我想增加图像的对比度,我应该将图像的高强度水平提高到更高,将低强度水平提高到更低?

我对对比度和强度感到困惑,因为它们似乎彼此相反。请帮帮我。

4个回答

关于强度

简单地说,很难谈论图像的“强度”。每个像素都有其强度(对于灰度图像,它们通常允许的范围是 [0, 255]),但不存在图像强度的概念。如果您正在进行某种图像分析,您可能会对描述图像强度的参数感兴趣,例如平均强度(如@geometrikal 所说)或图像级别的分布(与对比度有关)。

对比之下

如果您假设灰度图像仅包含两个强度值的像素(一个用于背景像素,一个用于对象像素)的理想化情况,则对象的对比度将是这些值的差异。在显示的图像上意味着什么 --> 对比度越高,就越容易在图像上发现(查找、定位)对象(对于人眼)。同样,您通常会谈论图像中对象的对比度很难谈论无法定义对象的图像对比度。

例如,让我们看几个一维信号(您可以从这些信号中生成与您的示例类似的图像):

1)   0   0   0   0  20  20   0   0  

2)   0   0   0   0 255 255   0   0

3) 200 200 200 200 255 255 200 200

4) 200 200 200 200   0   0 200 200

我将假设每个示例中与其余像素不同的两个像素是对象像素,其余的是背景。我们这里有几个案例(我可以做更多):

  1. 深色背景上较亮的物体,所有强度值都很低(即图像相当暗),对比度低
  2. 深色背景上的明亮物体,大多数像素强度低,对比度高(这是一张黑白图像)
  3. 较暗背景上的明亮物体,所有强度值都很高(即图像很亮),对比度低(但高于第一个示例)
  4. 明亮背景上的暗物体,大多数像素具有高强度,对比度高(但不如第二个例子高)

这是另一个例子,支持对比度通常是描述对象的属性,无论是相对于自身还是相对于周围环境。从该示例中要注意的另一个重要事实是对比度通常描述了强度级别之间的差异,但精确定义取决于应用(测量目的)让我解释一下P. Soille, L. Najman的分层图像分割使用的对比度定义:以图像处理和空间数据聚类的形态层次表示为例:

连通分量(对象)的内部对比度对应于属于该连通分量的两个相邻像素之间的最大强度差。外部对比度定义为所考虑的连通分量的像素与不属于所考虑分量的相邻像素之间的最小强度差

当然,不同的应用程序可以使用不同的对比度测量。

imadjust

我通常不在 MATLAB 中工作,但在文档中,它用于将输入图像的强度范围(给定范围内的强度级别)映射到为输出图像指定的强度范围。默认的无参数调用将增加图像的对比度。但是,您可以通过增加或减少对象对比度来获得更亮/更暗的图像。让我在我的第三个例子中证明这一点imadjust

imadjust(I3, [0.8; 1.0], [0.0; 1.0])

应该输出0 0 0 0 255 255 0 0你会得到一个黑色背景上的白色物体。通常,图像较暗(强度较低),但对比度较高(黑白)。

imadjust(I3, [0.8; 1.0], [0.0; 0.2])

应该输出0 0 0 0 51 51 0 0黑色背景上相当暗的物体。图像较暗(强度较低),物体的对比度没有变化

imadjust(I3, [0.8; 1.0], [0.85; 0.9])

应该输出216 216 216 229 229 216 216在明亮的背景上非常明亮的物体。图像更亮(更高强度),并且对象的对比度降低(对象强度级别更类似于背景的强度级别)。

您可以通过将它们乘以最大灰度级 (255) 来获得函数正在使用的实际范围。例如,范围[0.2; 0.8]实际上是强度范围[51; 204]

需要注意的另一件事是,该函数会剪切第一个强度范围之外的值,如果它们更小,则将它们映射到新的低点,如果它们大于该范围,则将它们映射到新的高点。我所有的例子实际上都包括这个:第一个范围从0.8which 开始映射到强度204,但是200从输入图像的强度映射到所有图像中的输出低。

所以,它实际上只是图像强度的简单缩放(带截止)。imadjust此外,仅使用图像作为输入参数的默认调用应该会增加对比度。我会说那imadjust(I2)不会做任何事情(在我的第二个示例中存在最大对比度)。

关于对比度增强

引自P. Soille:形态图像分析

图像对比度增强是指增强或锐化图像特征,以使图形显示对人眼对图像的可视化或分析更有用。

他还强调:通过视觉(人工)检查增强对比度图像分析更容易在像我的示例中这样的理想化图像中,计算机在图像分析难度方面不会获得太多收益。

例如,对于通过阈值提取对象,这意味着应该使用不同的阈值从背景中提取对象。但是,人类检查员会在高对比度图像上更容易发现物体。这一切都会在真实图像中发生一些变化(对象没有统一的灰度级),因此对比度增强在图像分析中变得有用。

对比度增强有几种方法:

  • 基于点的技术,其中本地邻域并不重要它们基于对整个图像的灰度级分析
  • 基于邻域的技术,其中像素的局部邻域很重要示例是白色黑色礼帽运算符,以及togle contrast 运算符
  • 基于变换的技术,其中在使用逆变换之前对变换后的图像进行滤波(例如,在傅立叶变换之后在频域中进行滤波)。

关于强度调整

就灰度图像而言,像素的强度与其亮度相对应。强度越大,亮度越大。这也意味着增加强度可以被视为使图像变亮(而降低强度可以被视为使图像变暗)。

我将把图像均匀变亮的过程描述为增加强度,同时保持整个图像的对比度不变这实际上意味着为所有像素添加一个常数值。

现在,由于像素强度值具有预定义的范围,通常为 [0..255],这意味着存在最大强度这不可避免地意味着一些像素(之前彼此不同)将变成白色(即强度 255)。

当您将照片对准非常明亮的物体(太阳或其他光线)时,这种“自然”就会发生。远离灯光,您可能会看到一些细节,但在灯光/太阳的位置及其周围,您只会看到白色像素,这意味着强度(拍摄图像时的光量)“达到”其最大值(可显示/可存储)值。

您不会通过此操作丢失细节的唯一方法是,如果原始像素强度仅属于可能的强度范围的一部分,例如,如果原始像素在 [10, 150] 范围内,则图像可能会变亮到 105 强度级别,然后再开始松散细节。

由于imgadjust旨在执行强度缩放,它可以做的不仅仅是使图像变亮/变暗。如果你想用 来模拟增亮效果imadjust,你可以这样写:

imadjust(I, [0.0; x], [1.0-x; 1.0])

其中x是 0 和 1 之间的任意数字(例如x=0.5,将使 [0..255] 图像增亮 127)。

也就是说,对于这样一个简单的操作来说,这是一个矫枉过正的事情。我确信 matlab 有一个基本操作,可以为矩阵的所有元素添加一个标量,所以你可以使用它:)

直观的解释

想象一下,白天你在外面,有大雾。强度,因为阳光普照。但是因为雾,你什么都看不见。对比度由于雾,所有到达你的光线都具有几乎相同的能量。你无法破译细节,因为你的眼睛有一些灰度级的量化,而且它们在你看来几乎是一样的。

在此处输入图像描述

现在,你在夜间在外面,没有雾,月亮很亮。强度低,因为没有来自太阳的直接辐射对比度很高,但由于总强度较低,您无法清楚地看到物体(除了月亮)现在你无法破译细节,因为你的眼睛对这么多能量不够敏感。

在此处输入图像描述


另一种更数学的思考方式:考虑以下两个高斯函数,每个函数都有均值和标准差。让我们假设它们代表图像的直方图。

在此处输入图像描述

强度是平均值,对比度是标准差。

在上图中,红色分布的强度更高——它的中心更靠右。蓝色分布有更多的对比度,更宽。

 I am confused with contrast and the intensity as they seem opposite to each other

它们不是对立的,是正交的。可能有4种可能:

  • 高强度、高对比度 -示例:晴天
  • 高强度、低对比度 -示例:有雾的晴天
  • 低强度,高对比度 -示例:夜晚的月亮
  • 低强度、低对比度 -示例:黑暗的房间

强度是指光量。对于灰度图像,它由每个像素的灰度值表示(例如,对于 8 位编码图像,127 比 220 暗,比 055 亮)。

对比度是指明暗部分之间的差异。如果你只看一个像素周围的邻域,它可以称为微对比度或局部对比度。

在数学上,真实输入灰度级的任何非递减函数都是有效的对比度变化然而,对于大多数应用程序,您可以考虑通过将图像乘以某个常数来调整对比度(如果要降低对比度,则 < 1,否则 > 1)并通过添加恒定偏移量来调整图像的强度。

一个像素的值就是它的强度。

图像的强度可以指该图像的全局度量,例如平均像素强度。图像强度的相对量度可以是与另一张图像相比图像看起来有多亮(平均像素强度)。图像的强度也可以是图像的亮度与显示器能够产生的亮度相比。

我会将具有高对比度的图像定义为像素强度分布偏向强度范围的低强度(例如 0)和高强度(例如 255)极端的图像。imadjust 命令执行此操作。

例如

莉娜,平均强度 0.48 - (0,1):

在此处输入图像描述

莉娜直方图:

在此处输入图像描述

调整后的莉娜(I,[0.15 0.85],[0 1]),平均强度 0.48 - (0,1):

在此处输入图像描述

调整后的直方图:

在此处输入图像描述