当前位置: 首页 > news >正文

图像处理学习笔记-20241021

文章目录

    • 双尺度分解
      • 具体过程
      • 应用场景
      • 示例
      • 优势
    • 曝光度权重
    • 二维熵
      • 熵的基本概念
      • 二维熵的定义
      • 二维熵计算步骤
      • 二维熵的优势
      • 示例:二维熵在图像分割中的应用
      • 1. **假设的图像数据**
      • 2. **计算邻域均值**
      • 3. **构建二维直方图**
      • 4. **归一化直方图,计算联合概率**
      • 5. **计算二维熵**
      • 总结
    • 结构度权重
    • 拉普拉斯金字塔
      • 构建步骤:
      • 操作流程:
      • 举例:5x5图像的拉普拉斯金字塔
      • 高斯金字塔的正确计算步骤
      • 改进后的例子:5x5 图像
        • 第一步:应用高斯模糊
        • 第二步:下采样
      • 回顾高斯金字塔结果:
      • 拉普拉斯金字塔的构建步骤:
      • 核心总结:
    • 交叉熵评价指标
      • 1. 交叉熵在图像融合中的应用
        • 1.1. 概率分布的构建
      • 2. 交叉熵计算
        • 2.1. 计算公式
      • 3. 实际示例
      • 1. 二值图像示例
        • 1.1. 源图像 1 (低曝光)
        • 1.2. 源图像 2 (中曝光)
        • 1.3. 源图像 3 (高曝光)
      • 2. 合成图像
      • 3. 概率分布计算
      • 4. 合成图像概率分布
      • 5. 计算交叉熵
        • 5.1. 对于 Image 1 和合成图像的交叉熵
        • 5.2. 对于 Image 2 和合成图像的交叉熵
        • 5.3. 对于 Image 3 和合成图像的交叉熵
      • 6. 计算均值
      • 4. 评估相似性的方法

双尺度分解

双尺度分解(Double-Scale Decomposition,DSD)是一种图像处理技术,常用于图像增强、图像修复和纹理分离等领域。它通过将图像分解为两个尺度(或频率)的不同部分来分别处理,从而保留细节、去除噪声,或调整图像的不同特征。

通常,双尺度分解的基本思想是将图像分解为:

  1. 基础层(Base Layer):表示图像中的低频分量,即较为平滑的、没有太多细节的部分。它包含了图像的整体结构或大尺度变化,类似于去除了细节的模糊图像。

  2. 细节层(Detail Layer):表示图像中的高频分量,即图像的细节和纹理部分。细节层中主要包含边缘、纹理以及局部对比度较高的部分。

通过将图像分解为基础层和细节层,可以针对每个层次分别进行处理。比如:

  • 增强细节:对细节层进行增强,可以使图像的纹理或边缘更清晰。
  • 去噪:通过对基础层进行平滑处理,可以去除噪声,同时保持图像的整体结构。
  • 图像修复:对不同层次的调整可以帮助修复图像中某些特定的区域。

具体过程

以一种常见的双尺度分解方法为例,它通常包含以下几个步骤:

  1. 基础层提取:使用一种平滑滤波器(如高斯滤波)对图像进行模糊处理,以得到基础层。基础层去除了图像的高频细节,保留了低频的全局结构。

  2. 细节层计算:通过从原始图像中减去基础层得到细节层。即细节层可以表示为:
    Detail Layer = Original Image − Base Layer \text{Detail Layer} = \text{Original Image} - \text{Base Layer} Detail Layer=Original ImageBase Layer

  3. 处理各层:可以对基础层进行去噪、增强对比度等操作;对细节层,可以进行细节增强、纹理处理等。

  4. 重构图像:最后,将经过处理的基础层和细节层重新组合,得到增强后的图像。图像重构公式为:
    Enhanced Image = Processed Base Layer + Processed Detail Layer \text{Enhanced Image} = \text{Processed Base Layer} + \text{Processed Detail Layer} Enhanced Image=Processed Base Layer+Processed Detail Layer

应用场景

双尺度分解被广泛应用于图像处理的不同领域:

  • HDR(高动态范围图像)合成:通过对图像的不同尺度处理,可以有效合成高动态范围图像,使得图像在不同曝光下都能很好地显示细节。

  • 图像去噪:通过分解图像,去除基础层的噪声,同时保留细节层的真实纹理,达到去噪的目的。

  • 图像细节增强:通过对细节层的放大处理,可以使图像中的纹理和边缘更加突出,用于摄影后期处理中。

  • 多尺度图像修复:修复图像时,可以针对不同尺度的损坏区域进行分别处理,获得更好的效果。

示例

假设有一幅图像,存在一些噪声和细节模糊,通过双尺度分解,我们可以:

  1. 对基础层进行平滑处理,去除大部分噪声;
  2. 对细节层进行增强,突出图像中的纹理和细节;
  3. 将基础层和增强后的细节层相加,得到去噪且细节清晰的图像。

这种方法能很好地保留图像的全局结构,并且细节部分得到显著提升。

优势

  • 更精细的控制:分离基础层和细节层后,可以独立处理不同的部分,增加处理的灵活性。
  • 保留细节:避免了常规去噪方法中细节和噪声同时被削弱的问题。

总的来说,双尺度分解是一种非常有效的图像处理技术,能够在保持图像全局结构的同时,灵活处理图像中的细节部分。

曝光度权重

曝光度权重(Exposure Weighting)是图像处理中特别在高动态范围图像(HDR)合成、图像融合等场景中用来平衡图像不同区域的亮度,以便处理或合成图像时达到更好的视觉效果的一种方法。曝光度权重通过为图像中不同曝光的区域赋予不同的权重,帮助确保图像在处理后显示更多的细节,尤其是那些可能由于曝光不当而丢失的细节。

曝光度权重的动机与概念

在图像拍摄过程中,不同曝光条件下的照片可能会有不同的效果:

  • 曝光过度(Overexposed):图像亮部区域细节丢失,呈现为过白的现象。
  • 曝光不足(Underexposed):图像暗部区域细节不清晰,表现为过黑或细节隐藏。

曝光度的评估是通过计算图像对应像素点亮度与期望亮度值差异来完成的,当源图像中像素点亮度值与期望亮度值μ 相近时,该图像对应像素点被赋予较大权重,反之被赋予更小权重。曝光度权重就是通过为不同曝光区域赋予权重来选择或强调某些曝光条件下的图像细节。

权重计算(最重要)

曝光度权重的计算通常基于像素的亮度值。目标是避免过亮和过暗区域在图像合成中占据主导地位,因此曝光度权重的计算经常关注于中间的曝光区域,也就是尽量让那些既不过亮也不过暗的像素获得更高的权重。

一般而言,曝光度权重可以按如下方式计算:

w ( p ) = e − ( I ( p ) − μ ) 2 2 σ 2 w(p) = e^{-\frac{(I(p) - μ)^2}{2\sigma^2}} w(p)=e2σ2(I(p)μ)2

其中:

  • w ( p ) w(p) w(p) 是像素 p p p 的权重值。
  • I ( p ) I(p) I(p) 是像素 p p p 的归一化亮度值(通常范围在 [ 0 , 1 ] [0, 1] [0,1])。
  • σ \sigma σ 是一个控制权重分布的参数,用来调节对亮度的敏感度。
  • μ可以为均值或者0.5

在这个公式中,当像素的亮度 I ( p ) I(p) I(p) 接近 0.5 时,权重最大,表示这种亮度的像素最为理想;而当亮度过高(接近 1)或过低(接近 0)时,权重减小。

示例

假设我们有三张不同曝光的图像,一张曝光不足,一张正常曝光,一张曝光过度。在图像融合时,使用曝光度权重可以为这三张图像的每个像素赋予不同的权重:

  • 曝光不足的图像,暗部区域权重大,亮部区域权重小。
  • 正常曝光的图像,中间亮度区域权重大。
  • 曝光过度的图像,亮部区域权重大,暗部区域权重小。

然后通过加权求和,生成一张既有亮部细节又有暗部细节的 HDR 图像。

曝光度权重的调整

曝光度权重的计算和应用可以根据具体需求进行调整。一般而言,参数 σ \sigma σ 会影响对亮度变化的敏感度。较小的 σ \sigma σ 值会使权重分布更集中于中间亮度的区域,而较大的 σ \sigma σ 会让更多的像素获得较高的权重,导致更多的亮部或暗部信息参与到合成中。

  • 敏感度调节:较小的 σ \sigma σ 值会使权重分布更集中,意味着只有接近中间亮度的像素会获得较高的权重。这种情况下,过曝和欠曝的像素将被大幅度抑制,有利于突出中间亮度区域的细节。

  • 权重分布:较大的 σ \sigma σ 值会使得更多的像素获得较高的权重,从而允许更多的亮度区域参与合成。这会使得图像中的高亮和阴影细节得到更好的保留,但可能导致图像整体亮度失衡。

设置 σ \sigma σ 的常用方法
  1. 根据图像内容进行调整

    • 如果处理的图像对比度较高,建议使用较小的 σ \sigma σ 值,以避免过多的高亮和阴影细节干扰合成。
    • 对于对比度较低的图像,可以尝试增大 σ \sigma σ 值,以便于更好地合成各个亮度区域的信息。
  2. 实验和迭代

    • 开始时可以设置 σ \sigma σ 为一个中等值,例如 20 20 20 30 30 30(基于图像的灰度值范围 [ 0 , 255 ] [0, 255] [0,255])。然后不断试错
  3. 基于图像的统计特性

    • 可以分析图像的灰度直方图,以确定适合的 σ \sigma σ 值。例如,计算图像中灰度值的标准差或范围,并据此设置 σ \sigma σ,例如使用 σ = std 2 \sigma = \frac{\text{std}}{2} σ=2std

3. 示例:设置 σ \sigma σ 的实践

假设我们有一个 HDR 图像合成的任务,处理一组包含高亮和阴影细节的图像。以下是一个实践中的 σ \sigma σ 设置示例:

  • 图像 A(高对比度,包含高光区域):

    • 初始设置 σ = 15 \sigma = 15 σ=15,观察合成效果。
    • 如果高亮部分细节丢失,尝试增大 σ \sigma σ 20 20 20 25 25 25
  • 图像 B(低对比度,细节丰富):

    • 初始设置 σ = 30 \sigma = 30 σ=30,观察合成效果。
    • 如果合成结果太平淡,尝试减小 σ \sigma σ 25 25 25 20 20 20

二维熵

二维熵(Two-dimensional entropy, 2D entropy)是基于图像灰度直方图的熵值计算方法,用于衡量图像的信息量和不确定性。它是传统熵的二维扩展,常用于图像分割、阈值处理等图像处理任务。与一维熵(基于单一像素值的概率分布计算)不同,二维熵考虑了像素值及其邻域灰度级的联合概率分布,因而能够更好地反映图像的空间结构和信息分布。

熵的基本概念

在信息论中, 是用来衡量一个随机变量不确定性的度量,定义为:
H ( X ) = − ∑ x ∈ X P ( x ) log ⁡ P ( x ) H(X) = - \sum_{x \in X} P(x) \log P(x) H(X)=xXP(x)logP(x)
其中:

  • X X X 是一个随机变量,代表图像中的像素值集合;
  • P ( x ) P(x) P(x) 是像素值 x x x 的概率,通常通过像素的灰度直方图来近似估计。

熵的大小反映了图像中的信息量,熵越大,图像的复杂度或不确定性越高。

二维熵的定义

二维熵扩展了这一概念,考虑到不仅仅是单个像素的灰度值,还将像素与其邻域像素的关系纳入熵的计算。二维熵一般采用图像灰度值和其邻域灰度均值(或梯度)构建联合分布,然后计算联合分布的熵。

假设图像中某个像素的灰度值为 x x x,它邻域像素的灰度均值为 y y y,二维熵 H ( X , Y ) H(X, Y) H(X,Y) 的定义为:
H ( X , Y ) = − ∑ x ∑ y P ( x , y ) log ⁡ P ( x , y ) H(X, Y) = - \sum_{x} \sum_{y} P(x, y) \log P(x, y) H(X,Y)=xyP(x,y)logP(x,y)
其中:

  • P ( x , y ) P(x, y) P(x,y) 表示像素灰度值 x x x 和邻域均值 y y y 的联合概率分布;
  • x x x 表示图像中某个像素的灰度值, y y y 表示该像素的邻域均值或其他相关特征。

二维熵计算步骤

  1. 构建联合直方图:对于每个像素,计算其灰度值 x x x 以及对应的邻域灰度均值(或梯度) y y y,生成二维直方图( x x x, y y y)。二维直方图反映了像素值和其邻域特征的联合概率分布。

  2. 计算联合概率:将直方图中的每个组合 ( x , y ) (x, y) (x,y) 的频次归一化,得到联合概率分布 P ( x , y ) P(x, y) P(x,y)

  3. 计算二维熵:根据联合概率分布,应用二维熵公式计算总熵值。

二维熵的优势

  • 考虑空间信息:相比于一维熵,二维熵在计算时引入了像素邻域的关系信息,能够更好地反映图像的空间特性。这种方法适用于结构复杂、边缘明显的图像处理任务。

  • 图像分割中的应用:二维熵常用于图像分割中的阈值选择。通过寻找最大二维熵点,可以获得更合适的分割阈值,使分割结果更好地保持图像的结构和细节。

  • 图像去噪:在图像去噪过程中,利用二维熵可以帮助识别和保留图像中的重要信息,降低噪声的影响。

示例:二维熵在图像分割中的应用

在图像分割任务中,通常需要选取一个合适的阈值将图像分为前景和背景。使用二维熵的图像分割算法大致步骤如下:

  1. 构建二维直方图:首先计算图像每个像素的灰度值及其邻域均值,并生成对应的二维直方图。

  2. 计算二维熵:对于每一个可能的阈值 T T T,分别计算前景和背景的二维熵。整体熵值通常被定义为前景熵与背景熵的加权和。

  3. 寻找最大熵:在所有可能的阈值中,选择使整体熵值最大的阈值 T T T,作为图像的分割阈值。

通过这种方法,得到的分割结果往往能保留更多的细节和边缘信息,因为熵值的计算考虑了像素及其邻域的空间关系。

1. 假设的图像数据

假设这个 10×10 的图像(以二维矩阵形式展示)如下:

[ 200 210 205 220 230 225 220 200 190 185 195 200 210 215 225 220 210 195 185 180 190 195 200 210 220 215 205 190 180 175 185 190 195 205 215 210 200 185 175 170 180 185 190 200 210 205 195 180 170 165 175 180 185 195 205 200 190 175 165 160 170 175 180 190 200 195 185 170 160 155 165 170 175 185 195 190 180 165 155 150 160 165 170 180 190 185 175 160 150 145 155 160 165 175 185 180 170 155 145 140 ] \begin{bmatrix} 200 & 210 & 205 & 220 & 230 & 225 & 220 & 200 & 190 & 185 \\ 195 & 200 & 210 & 215 & 225 & 220 & 210 & 195 & 185 & 180 \\ 190 & 195 & 200 & 210 & 220 & 215 & 205 & 190 & 180 & 175 \\ 185 & 190 & 195 & 205 & 215 & 210 & 200 & 185 & 175 & 170 \\ 180 & 185 & 190 & 200 & 210 & 205 & 195 & 180 & 170 & 165 \\ 175 & 180 & 185 & 195 & 205 & 200 & 190 & 175 & 165 & 160 \\ 170 & 175 & 180 & 190 & 200 & 195 & 185 & 170 & 160 & 155 \\ 165 & 170 & 175 & 185 & 195 & 190 & 180 & 165 & 155 & 150 \\ 160 & 165 & 170 & 180 & 190 & 185 & 175 & 160 & 150 & 145 \\ 155 & 160 & 165 & 175 & 185 & 180 & 170 & 155 & 145 & 140 \end{bmatrix} 200195190185180175170165160155210200195190185180175170165160205210200195190185180175170165220215210205200195190185180175230225220215210205200195190185225220215210205200195190185180220210205200195190185180175170200195190185180175170165160155190185180175170165160155150145185180175170165160155150145140

该图像代表一个逐渐变化的灰度值矩阵,模拟了某种灰度渐变效果。

2. 计算邻域均值

为了计算二维熵,我们首先需要计算每个像素的邻域均值(例如,3×3 邻域)。对于边界上的像素,邻域可以做相应处理(如零填充或镜像填充)。

假设我们选择 3×3 邻域均值作为第二个维度。我们计算图像每个像素及其 3×3 邻域的均值。以 I ( 2 , 2 ) I(2, 2) I(2,2) 为例,它的 3×3 邻域如下:

[ 200 210 205 195 200 210 190 195 200 ] \begin{bmatrix} 200 & 210 & 205 \\ 195 & 200 & 210 \\ 190 & 195 & 200 \end{bmatrix} 200195190210200195205210200

这个邻域的均值是:

mean ( I ( 2 , 2 ) ) = 200 + 210 + 205 + 195 + 200 + 210 + 190 + 195 + 200 9 = 200.56 \text{mean}(I(2, 2)) = \frac{200 + 210 + 205 + 195 + 200 + 210 + 190 + 195 + 200}{9} = 200.56 mean(I(2,2))=9200+210+205+195+200+210+190+195+200=200.56

对整个图像应用这一过程,得到邻域均值矩阵。为了简化展示,我们假设这些均值已经计算完毕,得到一个 10×10 的邻域均值矩阵。

3. 构建二维直方图

现在我们有两个矩阵:一个是图像的灰度值矩阵,另一个是邻域均值矩阵。我们将这两个矩阵的值组合起来,构建二维直方图。二维直方图的每个条目 ( x , y ) (x, y) (x,y) 表示像素灰度值 x x x 和邻域均值 y y y 同时出现的次数。

比如,如果某个像素的灰度值为 200,邻域均值为 201,那么在二维直方图中,位置 ( 200 , 201 ) (200, 201) (200,201) 的条目,即灰度为200的增加 1。

4. 归一化直方图,计算联合概率

通过统计得到的二维直方图,我们将每个条目除以图像中像素总数(这里是 100 100 100 个像素),以此计算联合概率 P ( x , y ) P(x, y) P(x,y)

5. 计算二维熵

使用联合概率分布 P ( x , y ) P(x, y) P(x,y),我们可以计算二维熵。公式如下:

H ( X , Y ) = − ∑ x ∑ y P ( x , y ) log ⁡ P ( x , y ) H(X, Y) = - \sum_{x} \sum_{y} P(x, y) \log P(x, y) H(X,Y)=xyP(x,y)logP(x,y)

例如,如果 P ( 200 , 201 ) = 0.01 P(200, 201) = 0.01 P(200,201)=0.01,则对于这个条目,它对熵的贡献为:

− 0.01 log ⁡ 0.01 = 0.046 -0.01 \log 0.01 = 0.046 0.01log0.01=0.046

对所有可能的 ( x , y ) (x, y) (x,y) 组合求和,得到整个图像的二维熵值。

总结

通过这个简单的 10×10 图像例子,二维熵的计算过程包括以下步骤:

  1. 计算每个像素的邻域均值。
  2. 构建灰度值和邻域均值的联合直方图。
  3. 归一化直方图,得到联合概率分布。
  4. 计算二维熵。

结构度权重

结构度权重(Structure Weight)是图像处理和计算机视觉中用于分析和增强图像结构信息的重要概念。它通常用于多种任务,如图像增强、图像分割和特征提取等。下面,我们将深入探讨结构度权重的定义、计算方法及其应用。

1. 结构度权重的定义

结构度权重主要用于衡量图像中的结构信息。与简单的亮度或颜色信息不同,结构信息通常关注于边缘、纹理和形状等特征。结构度权重通过考虑像素之间的关系,尤其是在空间上邻近的像素之间的关系,来定义。

2. 计算结构度权重

结构度权重的计算通常涉及以下几个步骤:

c. 结构度权重的计算

结构度权重可以通过将图像的梯度幅值进行归一化处理来实现。归一化的目的是使权重值的范围在 [0, 1] 之间,便于后续的图像处理。

W ( x , y ) = M ( x , y ) ∑ i , j M ( i , j ) W(x, y) = \frac{M(x, y)}{\sum_{i,j} M(i,j)} W(x,y)=i,jM(i,j)M(x,y)

2. 去均值

接下来,去掉图像的均值以获得去除亮度影响的图像块。

  • 对于 x 1 x_1 x1
    x 1 − a x 1 = [ − 40 − 30 − 20 − 10 0 − 30 − 20 − 10 0 10 − 20 − 10 0 10 20 − 10 0 10 20 30 0 10 20 30 40 ] x_1 - a_{x_1} = \begin{bmatrix} -40 & -30 & -20 & -10 & 0 \\ -30 & -20 & -10 & 0 & 10 \\ -20 & -10 & 0 & 10 & 20 \\ -10 & 0 & 10 & 20 & 30 \\ 0 & 10 & 20 & 30 & 40 \end{bmatrix} x1ax1= 403020100302010010201001020100102030010203040

  • 对于 x 2 x_2 x2
    x 2 − a x 2 = [ − 40 − 30 − 20 − 10 0 − 30 − 20 − 10 0 10 − 20 − 10 0 10 20 − 10 0 10 20 30 0 10 20 30 40 ] x_2 - a_{x_2} = \begin{bmatrix} -40 & -30 & -20 & -10 & 0 \\ -30 & -20 & -10 & 0 & 10 \\ -20 & -10 & 0 & 10 & 20 \\ -10 & 0 & 10 & 20 & 30 \\ 0 & 10 & 20 & 30 & 40 \end{bmatrix} x2ax2= 403020100302010010201001020100102030010203040

  • 对于 x 3 x_3 x3
    x 3 − a x 3 = [ − 40 − 30 − 20 − 10 0 − 30 − 20 − 10 0 10 − 20 − 10 0 10 20 − 10 0 10 20 30 0 10 20 30 40 ] x_3 - a_{x_3} = \begin{bmatrix} -40 & -30 & -20 & -10 & 0 \\ -30 & -20 & -10 & 0 & 10 \\ -20 & -10 & 0 & 10 & 20 \\ -10 & 0 & 10 & 20 & 30 \\ 0 & 10 & 20 & 30 & 40 \end{bmatrix} x3ax3= 403020100302010010201001020100102030010203040

3. 计算二范数( L 2 L_2 L2范数)

接下来,计算每幅去除均值后的图像块的二范数,以表示其对比度的大小。计算方式如下:

∥ x n − a x n ∥ = ∑ i , j ( x n , i , j − a x n ) 2 \|x_n - a_{x_n}\| = \sqrt{\sum_{i,j}(x_{n,i,j} - a_{x_n})^2} xnaxn=i,j(xn,i,jaxn)2

对于 x 1 − a x 1 x_1 - a_{x_1} x1ax1,我们有:
∥ x 1 − a x 1 ∥ = ( − 40 ) 2 + ( − 30 ) 2 + ⋯ + 4 0 2 = 6700 ≈ 81.65 \|x_1 - a_{x_1}\| = \sqrt{(-40)^2 + (-30)^2 + \dots + 40^2} = \sqrt{6700} \approx 81.65 x1ax1=(40)2+(30)2++402 =6700 81.65

对于 x 2 − a x 2 x_2 - a_{x_2} x2ax2,我们有:
∥ x 2 − a x 2 ∥ = ( − 40 ) 2 + ( − 30 ) 2 + ⋯ + 4 0 2 = 6700 ≈ 81.65 \|x_2 - a_{x_2}\| = \sqrt{(-40)^2 + (-30)^2 + \dots + 40^2} = \sqrt{6700} \approx 81.65 x2ax2=(40)2+(30)2++402 =6700 81.65

对于 x 3 − a x 3 x_3 - a_{x_3} x3ax3,我们有:
∥ x 3 − a x 3 ∥ = ( − 40 ) 2 + ( − 30 ) 2 + ⋯ + 4 0 2 = 6700 ≈ 81.65 \|x_3 - a_{x_3}\| = \sqrt{(-40)^2 + (-30)^2 + \dots + 40^2} = \sqrt{6700} \approx 81.65 x3ax3=(40)2+(30)2++402 =6700 81.65

4. 计算对比度 c n c_n cn

对比度 c n c_n cn 是两个图像块二范数的比值,它反映了图像块之间的对比度变化情况:

c 1 = ∥ x 1 − a x 1 ∥ ∥ x 2 − a x 2 ∥ = 81.65 81.65 = 1 c_1 = \frac{\|x_1 - a_{x_1}\|}{\|x_2 - a_{x_2}\|} = \frac{81.65}{81.65} = 1 c1=x2ax2x1ax1=81.6581.65=1

同样,我们可以比较 x 1 x_1 x1 x 3 x_3 x3 的对比度:

c 2 = ∥ x 1 − a x 1 ∥ ∥ x 3 − a x 3 ∥ = 81.65 81.65 = 1 c_2 = \frac{\|x_1 - a_{x_1}\|}{\|x_3 - a_{x_3}\|} = \frac{81.65}{81.65} = 1 c2=x3ax3x1ax1=81.6581.65=1

因此,在这两个案例中, c n = 1 c_n = 1 cn=1,说明图像块之间的对比度没有显著差异。

5. 归一化结构分量计算

我们通过归一化去除均值后的图像块来计算结构分量。归一化后的结果表示图像的结构信息:

对于 x 1 − a x 1 x_1 - a_{x_1} x1ax1,归一化结果为:

x 1 − a x 1 ∥ x 1 − a x 1 ∥ = [ − 0.49 − 0.37 − 0.24 − 0.12 0 − 0.37 − 0.24 − 0.12 0 0.12 − 0.24 − 0.12 0 0.12 0.24 − 0.12 0 0.12 0.24 0.37 0 0.12 0.24 0.37 0.49 ] \frac{x_1 - a_{x_1}}{\|x_1 - a_{x_1}\|} = \begin{bmatrix} -0.49 & -0.37 & -0.24 & -0.12 & 0 \\ -0.37 & -0.24 & -0.12 & 0 & 0.12 \\ -0.24 & -0.12 & 0 & 0.12 & 0.24 \\ -0.12 & 0 & 0.12 & 0.24 & 0.37 \\ 0 & 0.12 & 0.24 & 0.37 & 0.49 \end{bmatrix} x1ax1x1ax1= 0.490.370.240.1200.370.240.1200.120.240.1200.120.240.1200.120.240.3700.120.240.370.49

同样,对 x 2 − a x 2 x_2 - a_{x_2} x2ax2 x 3 − a x 3 x_3 - a_{x_3} x3ax3 进行归一化,结果相同:

x 2 − a x 2 ∥ x 2 − a x 2 ∥ = x 3 − a x 3 ∥ x 3 − a x 3 ∥ \frac{x_2 - a_{x_2}}{\|x_2 - a_{x_2}\|} = \frac{x_3 - a_{x_3}}{\|x_3 - a_{x_3}\|} x2ax2x2ax2=x3ax3x3ax3

6. 计算结构分量 s n s_n sn

结构分量 s n s_n sn 反映了两个图像块之间的相似性。我们计算两个图像块的归一化结果的内积:

s n = ∑ ( x 1 − a x 1 ∥ x 1 − a x 1 ∥ ⋅ x 2 − a x 2 ∥ x 2 − a x 2 ∥ ) ∥ x 1 − a x 1 ∥ ∥ x 2 − a x 2 ∥ s_n = \frac{\sum \left( \frac{x_1 - a_{x_1}}{\|x_1 - a_{x_1}\|} \cdot \frac{x_2 - a_{x_2}}{\|x_2 - a_{x_2}\|} \right)}{\|x_1 - a_{x_1}\|\|x_2 - a_{x_2}\|} sn=x1ax1∥∥x2ax2(x1ax1x1ax1x2ax2x2ax2)

由于 x 1 x_1 x1, x 2 x_2 x2, 和 x 3 x_3 x3 归一化结果相同,结构分量为:

s n = 1 s_n = 1 sn=1

拉普拉斯金字塔

起的名字挺唬人的,实际上就是先制作高斯金字塔,再差分,得到拉普拉斯金字塔。

构建步骤:

  1. 高斯金字塔:首先需要构建高斯金字塔,通过对图像逐步进行高斯模糊和平滑处理,然后将图像下采样。

  2. 拉普拉斯金字塔:在得到高斯金字塔后,拉普拉斯金字塔的每一层是通过将高斯金字塔相邻两层的差值表示的。具体做法是,对高斯金字塔中的每一层进行上采样和高斯模糊处理后,减去原始高斯图像,从而得到拉普拉斯图像。拉普拉斯金字塔捕捉了图像在不同分辨率下的边缘和细节信息。

  3. 重构图像:通过将拉普拉斯金字塔的各个层逐层上采样并叠加,可以重建原始图像。这意味着拉普拉斯金字塔不仅是一种图像处理方法,也是一种可逆的图像编码方法。

操作流程:

  • 高斯模糊与下采样:对图像应用高斯滤波(低通滤波),再对图像进行下采样,生成高斯金字塔。
  • 上采样与差值计算:对下采样后的图像进行上采样(通常是邻近插值或者双线性插值),并从上一级的原始图像中减去插值后的图像,得到拉普拉斯图像。
  • 重复:在多层级上重复上述过程。

举例:5x5图像的拉普拉斯金字塔

假设我们有一个简单的5x5灰度图像,如下所示:

[ 10 10 10 10 10 10 20 20 20 10 10 20 30 20 10 10 20 20 20 10 10 10 10 10 10 ] \begin{bmatrix} 10 & 10 & 10 & 10 & 10 \\ 10 & 20 & 20 & 20 & 10 \\ 10 & 20 & 30 & 20 & 10 \\ 10 & 20 & 20 & 20 & 10 \\ 10 & 10 & 10 & 10 & 10 \\ \end{bmatrix} 10101010101020202010102030201010202020101010101010
你提到高斯金字塔的计算过程可能有问题,确实可以更仔细检查。为了确保我们正确地理解高斯金字塔的构建过程,我将更详细地解释如何逐步计算高斯金字塔的每一层。

高斯金字塔的正确计算步骤

高斯金字塔的核心思想是通过 高斯模糊(Gaussian Blur)下采样(Downsampling) 操作逐层减少图像的分辨率,从而得到一系列不同分辨率的图像。这是高斯金字塔每一层的构建流程:

  1. 高斯模糊
    对图像应用高斯滤波器,使其平滑化。高斯滤波的作用是减小图像中的高频分量(如噪声和细节),保留低频信息。滤波器的核(kernel)通常是一个对称的矩阵,比如一个 3 × 3 3 \times 3 3×3 5 × 5 5 \times 5 5×5 的高斯核。

    一个典型的 3 × 3 3 \times 3 3×3 高斯滤波器可以表示为:
    G = 1 16 [ 1 2 1 2 4 2 1 2 1 ] G = \frac{1}{16} \begin{bmatrix} 1 & 2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 1 \\ \end{bmatrix} G=161 121242121

    通过将图像与这个核进行卷积运算,我们可以得到一个模糊化的图像。高斯滤波的核值可以根据需求进行调整,但滤波器的大小一般选择为奇数(例如 3 × 3 3 \times 3 3×3, 5 × 5 5 \times 5 5×5)。

  2. 下采样
    高斯模糊后的图像会被下采样,即将图像的宽度和高度都减半,从而生成更低分辨率的图像。通常通过跳过每隔一行一列像素,构建一个新的图像。例如,一个 5 × 5 5 \times 5 5×5 的图像在下采样后会变成 3 × 3 3 \times 3 3×3

    在下采样之前,一定要先进行高斯模糊,以避免出现混叠(aliasing)现象。

改进后的例子:5x5 图像

假设我们有一个简单的 5 × 5 5 \times 5 5×5 灰度图像:

[ 10 10 10 10 10 10 20 20 20 10 10 20 30 20 10 10 20 20 20 10 10 10 10 10 10 ] \begin{bmatrix} 10 & 10 & 10 & 10 & 10 \\ 10 & 20 & 20 & 20 & 10 \\ 10 & 20 & 30 & 20 & 10 \\ 10 & 20 & 20 & 20 & 10 \\ 10 & 10 & 10 & 10 & 10 \\ \end{bmatrix} 10101010101020202010102030201010202020101010101010

第一步:应用高斯模糊

3 × 3 3 \times 3 3×3 高斯核 G G G 进行卷积,假设计算结果为:

[ 12 14 14 14 12 14 19 22 19 14 14 22 28 22 14 14 19 22 19 14 12 14 14 14 12 ] \begin{bmatrix} 12 & 14 & 14 & 14 & 12 \\ 14 & 19 & 22 & 19 & 14 \\ 14 & 22 & 28 & 22 & 14 \\ 14 & 19 & 22 & 19 & 14 \\ 12 & 14 & 14 & 14 & 12 \\ \end{bmatrix} 12141414121419221914142228221414192219141214141412

第二步:下采样

现在我们将这个 5 × 5 5 \times 5 5×5 的模糊图像进行下采样,选择每隔一行和一列的像素,得到 3 × 3 3 \times 3 3×3 的下采样图像:

[ 12 14 12 14 28 14 12 14 12 ] \begin{bmatrix} 12 & 14 & 12 \\ 14 & 28 & 14 \\ 12 & 14 & 12 \\ \end{bmatrix} 121412142814121412

这是高斯金字塔的第一层。可以看到,随着分辨率的降低,图像的细节也减少了。

继续进行拉普拉斯金字塔的操作,我会确保每一步的计算都详细且准确。

我们已经正确计算出了 高斯金字塔 的第一层和第二层,现在将继续构建 拉普拉斯金字塔

回顾高斯金字塔结果:

  • 原始 5 × 5 5 \times 5 5×5 图像:
    [ 10 10 10 10 10 10 20 20 20 10 10 20 30 20 10 10 20 20 20 10 10 10 10 10 10 ] \begin{bmatrix} 10 & 10 & 10 & 10 & 10 \\ 10 & 20 & 20 & 20 & 10 \\ 10 & 20 & 30 & 20 & 10 \\ 10 & 20 & 20 & 20 & 10 \\ 10 & 10 & 10 & 10 & 10 \\ \end{bmatrix} 10101010101020202010102030201010202020101010101010

  • 高斯模糊后的 5 × 5 5 \times 5 5×5 图像:
    [ 12 14 14 14 12 14 19 22 19 14 14 22 28 22 14 14 19 22 19 14 12 14 14 14 12 ] \begin{bmatrix} 12 & 14 & 14 & 14 & 12 \\ 14 & 19 & 22 & 19 & 14 \\ 14 & 22 & 28 & 22 & 14 \\ 14 & 19 & 22 & 19 & 14 \\ 12 & 14 & 14 & 14 & 12 \\ \end{bmatrix} 12141414121419221914142228221414192219141214141412

  • 下采样后的 3 × 3 3 \times 3 3×3 图像:
    [ 12 14 12 14 28 14 12 14 12 ] \begin{bmatrix} 12 & 14 & 12 \\ 14 & 28 & 14 \\ 12 & 14 & 12 \\ \end{bmatrix} 121412142814121412

拉普拉斯金字塔的构建步骤:

  1. 上采样 3 × 3 3 \times 3 3×3 图像
    3 × 3 3 \times 3 3×3 图像进行上采样,使其恢复到 5 × 5 5 \times 5 5×5 的尺寸。上采样通常使用双线性插值或者邻近插值(Nearest Neighbor)。为了简化计算,我们这里使用邻近插值。

    上采样后的结果如下:
    [ 12 12 14 12 12 12 12 14 12 12 14 14 28 14 14 12 12 14 12 12 12 12 14 12 12 ] \begin{bmatrix} 12 & 12 & 14 & 12 & 12 \\ 12 & 12 & 14 & 12 & 12 \\ 14 & 14 & 28 & 14 & 14 \\ 12 & 12 & 14 & 12 & 12 \\ 12 & 12 & 14 & 12 & 12 \\ \end{bmatrix} 12121412121212141212141428141412121412121212141212

  2. 计算拉普拉斯图像
    现在我们将高斯金字塔的原始 5 × 5 5 \times 5 5×5 图像与上采样后的 5 × 5 5 \times 5 5×5 图像相减,得到拉普拉斯图像。

    原始 5 × 5 5 \times 5 5×5 图像为:
    [ 10 10 10 10 10 10 20 20 20 10 10 20 30 20 10 10 20 20 20 10 10 10 10 10 10 ] \begin{bmatrix} 10 & 10 & 10 & 10 & 10 \\ 10 & 20 & 20 & 20 & 10 \\ 10 & 20 & 30 & 20 & 10 \\ 10 & 20 & 20 & 20 & 10 \\ 10 & 10 & 10 & 10 & 10 \\ \end{bmatrix} 10101010101020202010102030201010202020101010101010

    上采样后的 5 × 5 5 \times 5 5×5 图像为:
    [ 12 12 14 12 12 12 12 14 12 12 14 14 28 14 14 12 12 14 12 12 12 12 14 12 12 ] \begin{bmatrix} 12 & 12 & 14 & 12 & 12 \\ 12 & 12 & 14 & 12 & 12 \\ 14 & 14 & 28 & 14 & 14 \\ 12 & 12 & 14 & 12 & 12 \\ 12 & 12 & 14 & 12 & 12 \\ \end{bmatrix} 12121412121212141212141428141412121412121212141212

计算结果为:

[ − 2 − 2 − 4 − 2 − 2 − 2 8 6 8 − 2 − 4 6 2 6 − 4 − 2 8 6 8 − 2 − 2 − 2 − 4 − 2 − 2 ] \begin{bmatrix} -2 & -2 & -4 & -2 & -2 \\ -2 & 8 & 6 & 8 & -2 \\ -4 & 6 & 2 & 6 & -4 \\ -2 & 8 & 6 & 8 & -2 \\ -2 & -2 & -4 & -2 & -2 \\ \end{bmatrix} 2242228682462642868222422

这个差值矩阵即为拉普拉斯金字塔的第一层,捕捉到了图像的细节和边缘信息。负数代表图像局部的较暗区域,正数代表较亮区域。

核心总结:

  • 高斯金字塔:通过高斯模糊和平滑操作,再下采样,逐步减少图像的分辨率。
  • 拉普拉斯金字塔:通过对高斯金字塔相邻层进行上采样和相减,生成不同尺度下的细节图像。拉普拉斯金字塔的每一层包含的是图像的高频信息和细节。

现在,我们得到了一个完整的拉普拉斯金字塔第一层,通过这种方式可以对图像进行多分辨率的处理与分析。
这种图像处理方法不仅能够有效表示图像的多尺度特征,还提供了精细的细节和边缘信息,有助于后续的高效处理。

交叉熵评价指标

1. 交叉熵在图像融合中的应用

在图像融合任务中,通常需要将多幅图像(如不同传感器捕获的图像)结合为一幅图像,以增强图像的质量或提取更多的信息。为了评估融合后的图像与源图像之间的相似性,可以使用交叉熵来比较它们的概率分布。

1.1. 概率分布的构建

在评估融合图像时,首先需要将源图像和融合图像转换为概率分布。通常可以通过以下方法进行处理:

  • 直方图归一化:计算源图像和融合图像的灰度直方图,然后进行归一化,使得每个直方图的总和为 1,从而得到概率分布。

  • Softmax 函数:对于每个像素的不同通道(例如 RGB),可以使用 softmax 函数来计算概率分布:

p i = e x i ∑ j e x j p_i = \frac{e^{x_i}}{\sum_{j} e^{x_j}} pi=jexjexi

其中 x i x_i xi 是图像中像素值。

2. 交叉熵计算

2.1. 计算公式

一旦获得源图像和融合图像的概率分布 P P P Q Q Q,可以使用交叉熵公式进行计算:

H ( P , Q ) = − ∑ i P ( i ) log ⁡ ( Q ( i ) ) H(P, Q) = -\sum_{i} P(i) \log(Q(i)) H(P,Q)=iP(i)log(Q(i))
在图像处理的上下文中, P ( i ) P(i) P(i) Q ( i ) Q(i) Q(i) 代表对应像素值的概率。

3. 实际示例

下面我们通过一个简单的例子来介绍如何计算三幅不同曝光度的二值图像的交叉熵均值。我们将假设有三幅二值图像,然后计算它们的概率分布并使用交叉熵来评估合成图像与源图像之间的相似性。

1. 二值图像示例

假设我们有三幅不同曝光度的二值图像,如下所示:

1.1. 源图像 1 (低曝光)

Image 1 = [ 0 0 1 0 1 1 0 0 0 ] \text{Image 1} = \begin{bmatrix} 0 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \end{bmatrix} Image 1= 000010110

1.2. 源图像 2 (中曝光)

Image 2 = [ 0 1 1 1 1 1 0 0 0 ] \text{Image 2} = \begin{bmatrix} 0 & 1 & 1 \\ 1 & 1 & 1 \\ 0 & 0 & 0 \end{bmatrix} Image 2= 010110110

1.3. 源图像 3 (高曝光)

Image 3 = [ 1 1 1 1 1 1 1 0 0 ] \text{Image 3} = \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 0 & 0 \end{bmatrix} Image 3= 111110110

2. 合成图像

为了合成图像,我们可以使用简单的逻辑运算,如按位取并(OR)操作。假设合成图像为:

Composite Image = [ 1 1 1 1 1 1 1 0 0 ] \text{Composite Image} = \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 0 & 0 \end{bmatrix} Composite Image= 111110110

3. 概率分布计算

对于每幅图像,我们计算每个像素值的概率分布。在二值图像中,我们可以简单地通过对每个像素值进行归一化来获得概率分布。例如:

  • Image 1 的概率分布
    • 背景(0): 5 9 \frac{5}{9} 95(5个0)
    • 前景(1): 4 9 \frac{4}{9} 94(4个1)

P 1 = [ 5 9 , 4 9 ] P_1 = \left[\frac{5}{9}, \frac{4}{9}\right] P1=[95,94]

  • Image 2 的概率分布
    • 背景(0): 5 9 \frac{5}{9} 95
    • 前景(1): 4 9 \frac{4}{9} 94

P 2 = [ 5 9 , 4 9 ] P_2 = \left[\frac{5}{9}, \frac{4}{9}\right] P2=[95,94]

  • Image 3 的概率分布
    • 背景(0): 4 9 \frac{4}{9} 94
    • 前景(1): 5 9 \frac{5}{9} 95

P 3 = [ 4 9 , 5 9 ] P_3 = \left[\frac{4}{9}, \frac{5}{9}\right] P3=[94,95]

4. 合成图像概率分布

合成图像的概率分布为:

  • Composite Image 的概率分布
    • 背景(0): 3 9 \frac{3}{9} 93
    • 前景(1): 6 9 \frac{6}{9} 96

P c o m p o s i t e = [ 3 9 , 6 9 ] P_{composite} = \left[\frac{3}{9}, \frac{6}{9}\right] Pcomposite=[93,96]

5. 计算交叉熵

交叉熵计算公式为:

H ( P , Q ) = − ∑ i P ( i ) log ⁡ ( Q ( i ) ) H(P, Q) = -\sum_{i} P(i) \log(Q(i)) H(P,Q)=iP(i)log(Q(i))

我们将分别计算交叉熵:

5.1. 对于 Image 1 和合成图像的交叉熵

H ( P 1 , P c o m p o s i t e ) = − ( 5 9 log ⁡ ( 3 9 ) + 4 9 log ⁡ ( 6 9 ) ) H(P_1, P_{composite}) = -\left(\frac{5}{9} \log\left(\frac{3}{9}\right) + \frac{4}{9} \log\left(\frac{6}{9}\right)\right) H(P1,Pcomposite)=(95log(93)+94log(96))

5.2. 对于 Image 2 和合成图像的交叉熵

H ( P 2 , P c o m p o s i t e ) = − ( 5 9 log ⁡ ( 3 9 ) + 4 9 log ⁡ ( 6 9 ) ) H(P_2, P_{composite}) = -\left(\frac{5}{9} \log\left(\frac{3}{9}\right) + \frac{4}{9} \log\left(\frac{6}{9}\right)\right) H(P2,Pcomposite)=(95log(93)+94log(96))

5.3. 对于 Image 3 和合成图像的交叉熵

H ( P 3 , P c o m p o s i t e ) = − ( 4 9 log ⁡ ( 3 9 ) + 5 9 log ⁡ ( 6 9 ) ) H(P_3, P_{composite}) = -\left(\frac{4}{9} \log\left(\frac{3}{9}\right) + \frac{5}{9} \log\left(\frac{6}{9}\right)\right) H(P3,Pcomposite)=(94log(93)+95log(96))

6. 计算均值

最后,计算三幅图像与合成图像之间的交叉熵均值:

H m e a n = H ( P 1 , P c o m p o s i t e ) + H ( P 2 , P c o m p o s i t e ) + H ( P 3 , P c o m p o s i t e ) 3 ≈ 0.7649 H_{mean} = \frac{H(P_1, P_{composite}) + H(P_2, P_{composite}) + H(P_3, P_{composite})}{3}≈0.7649 Hmean=3H(P1,Pcomposite)+H(P2,Pcomposite)+H(P3,Pcomposite)0.7649

4. 评估相似性的方法

  • 较小的交叉熵值:说明融合图像的概率分布与源图像接近,信息内容相似,融合效果较好。

  • 较大的交叉熵值:说明融合图像的概率分布与源图像有较大的差异,可能意味着信息丢失或融合效果不佳。


http://www.mrgr.cn/news/56582.html

相关文章:

  • Nacos相关问题
  • 【ruoyi-vue】ruoyi-vue 去掉数据库和redis
  • 【Flutter】Dart:异步
  • 免费开源的微信开发框架
  • 手机ip切换成全局模式怎么弄
  • QT开发:详解Qt样式表(QSS):美化界面的应用
  • Ubuntu配置FTP
  • eCAP超声波测距-ePWM电机调速
  • 影刀RPA实战:网页爬虫之我爱听评书
  • 数据结构 - 树,三探之代码实现
  • 如何看待AI技术的应用前景?
  • AI处理图片和视频的网址
  • 帝国CMS – AutoTitlePic 自动生成文章标题图片插件
  • ARL 灯塔 | ARL 灯塔 — 字典替换
  • 路径参数和post请求方式在请求资源时如何选择------各自的优势和使用场景比较
  • 基于深度学习的声纹识别
  • 进销存平板展示系统——未来之窗行业应用跨平台架构
  • 要让AI(任何一款绘图AI)把一个己有风格的图片画到一个实物商品上的窍门
  • 压缩感知方法——基础追踪(Basis Pursuit, BP)方法详解
  • 逐行讲解大模型生成解码超参数源码(temperature、top-k、top-p等)
  • 了解Scala的多态概述的定义,作用以及优点
  • 7.hyperf安装【Docker】
  • C语言(十六)函数综合(二)递归 --- 辩论赛经验谈
  • vite.config.js配置路径别名@
  • windows DLL技术-DLL概述
  • MOE混合专家模型总结(面试)