图像处理中的点算子与基础变换

一、 基本概念解析

  1. 算子:指从一个向量空间到另一个向量空间的映射。
  2. 伽马校正:对图像的伽马曲线进行编辑,通过非线性色调编辑来增强图像对比度,提亮深色部分,压暗浅色部分。
  3. 向量值函数:值域是线性空间或其子集的函数。在图像处理中,彩色图像通常被视为向量值函数。
  4. 色彩通道:保存图像颜色信息的通道(如RGB图像中的红、绿、蓝通道)。
  5. 标称:产品上标明的规格、数值等性能和质量要素。

二、 像素变换

图像处理算子是将一个或多个输入图像映射为一个输出图像的函数。

  1. 基本点算子

    • 公式:g(x) = a * f(x) + b
    • 参数a(> 0):增益参数,控制对比度
    • 参数b:偏置参数,控制亮度
    • 这些参数可以是全局的,也可以随空间位置变化。
    • 乘法增益是一个线性算子,因为它遵从叠加原理。
  2. 线性混合算子

    • 公式:g(x) = (1 - α) * f₀(x) + α * f₁(x)
    • 参数α(0 到 1):混合系数。
    • 应用:实现两幅图像或视频间的淡入淡出效果,也是图像变形算法的一部分。
  3. 伽马校正

    • 性质:非线性算子。
    • 作用:在图像预处理中,用于校正输入辐射量与量化像素值之间的非线性映射关系。

三、 彩色变换

彩色图像可以视为向量值函数或多个独立通道的集合。

  1. 亮度与色调调整
    • 为所有色彩通道加上同一个值,会增加亮度,但也会影响色调饱和度
  2. 色彩平衡
    • 方法一:对每个色彩通道乘以不同的尺度因子。
    • 方法二:将图像从RGB空间转换到XYZ色彩空间,改变标称白点后,再转换回RGB空间。

四、 图像合成与抠图

  1. 透明度遮罩(Alpha通道)

    • 除了RGB通道,图像可以包含第四个通道——Alpha通道(α),用于表示每个像素的不透明度
    • 前景物体内:α = 1(完全不透明)。
    • 背景区域:α = 0(完全透明)。
  2. 合成公式

    • C = (1 - α) * B + α * F
    • 其中 C 是合成后的图像,B 是背景图像,F 是前景图像。
    • 该公式通过 (1 - α) 减弱背景,并根据不透明度 α 加入前景颜色。
  3. 抠图

    • 定义:从一幅或多幅图像中恢复出前景(F)、背景(B)和透明度遮罩(α)的过程。
    • 传统方法:蓝屏抠图。

五、 直方图均衡化

用于改善图像显示效果的技术。

  1. 简单方法

    • 方法A:将图像中最亮和最暗的像素映射到纯白和纯黑。
    • 方法B:以图像像素平均值为中间灰度值,并扩展范围以充分利用动态范围。
  2. 亮度直方图

    • 作用:可视化图像亮度值分布,辅助分析。
    • 问题:如果直方图中黑色和白色值过多,而中间调稀少,图像对比度不佳。
  3. 直方图均衡化原理

    • 目标:寻找一个映射函数,使得处理后的图像直方图分布平坦(即所有灰度级出现概率相等)。
    • 方法:通过计算原始图像灰度级的累积分布函数 来构建映射函数。
    • 潜在问题:会放大暗区域的噪声。

六、 局部自适应直方图均衡化

用于处理亮度动态范围大的图像,克服全局均衡化的局限性。

  1. 分块均衡化

    • 将图像划分为 M × M 的块,对每个子块独立进行直方图均衡化。
    • 缺点:会在块与块的边界处产生明显的区块效应(亮度不连续)。
  2. 滑动窗口法

    • 对每个像素,以其为中心的 M × M 邻域窗口重新计算直方图并进行均衡化。
    • 优点:效果更平滑。
    • 缺点:计算量巨大(每个像素需计算 次)。可通过增量更新直方图来优化。
  3. 自适应直方图均衡化

    • 步骤
      1. 将图像划分为不重叠的块,对每块进行直方图均衡化,得到每个块角的查找表。
      2. 对于图像中的任一像素,通过双线性插值其周围四个角点的查找表值,来混合出该像素的最终映射结果。
    • 优点:有效避免了区块效应,且计算效率高于滑动窗口法。

习题

3.1色彩平衡

写一个简单的应用,通过将每个色彩之乘以一个用户指定的不同常量的方法来改变一幅图像的色彩平衡。如果想把这个做得更好,你可以将这个做成有滑块的交互应用

1. 如果在做乘法之前或之后进行伽玛变换,结果会有不同吗?为什么相同或为什么不同

我的解: 
     做乘法之前 :'g(x)=a(x)(f(X))**1/γ'
     做乘法之后: 'g(x)=(a(X)f(X))**1/γ=(a(x))**1/γ (f(x))**1/γ'
    结果自然不同
 AI的解:
     答:结果会不同。
    原因分析:
        1. 数学上的不可交换性
                - 伽玛变换是非线性操作:`f(x) = x^γ`
                - 色彩平衡是线性操作:`g(x) = a × f(x)`
                 - 由于非线性操作与线性操作不满足交换律,因此顺序不同会导致不同结果
         2. 物理意义不同
                1. 先伽玛变换后乘法:相当于在感知均匀的色彩空间中进行线性调整
                2. 先乘法后伽玛变换:相当于在线性光空间中调整后再进行感知编码
        3. 实际效果差异
                1. 先做伽玛变换会将图像转换到更符合人眼感知的空间,此时再做色彩平衡调整会更符合视觉预期
                 2. 先做色彩平衡在线性空间中进行,可能会放大噪声或产生不自然的色彩过渡
         结论: 由于伽玛变换的非线性特性,它与线性乘法操作不满足交换律,因此操作顺序不同会产生不同的视觉效果。在实际应用中,通常建议先进行伽玛校正(将图像转换到线性空间),再进行色彩平衡等线性操作,最后根据需要决定是否进行反伽玛变换。