引言
在医学超声成像领域,原始射频(RF)信号经过波束合成后得到的图像,往往存在动态范围过大、局部对比度不足等问题,直接显示不利于医生诊断。分段增益(Time Gain Compensation, TGC,或 Depth Gain Compensation, DGC)算法是超声图像后处理中的一项核心技术,它通过补偿超声波在人体组织中传播时的衰减,使得不同深度组织的回波信号强度趋于一致,从而显著提升图像的均匀性和整体诊断价值。本文将深入探讨分段增益算法的基本原理、数学模型、实现步骤,并提供代码示例。
分段增益算法的基本原理
超声波在生物组织中传播时,其能量会随着传播距离的增加而衰减。衰减主要来源于吸收(组织将声能转化为热能)和散射。这导致从深部组织返回的回波信号幅度远小于浅表组织,在图像上表现为亮度随深度增加而急剧下降。
分段增益算法的核心思想是:根据回波信号的深度(即时间),施加一个与衰减趋势相反的增益曲线。这条增益曲线通常是深度(或时间)的函数,用于补偿信号的衰减,使得相同反射强度的组织在不同深度下能在图像上呈现出相近的亮度。
传统的TGC是用户手动调节的旋钮,而现代数字超声系统则采用自适应分段增益算法,能够根据图像内容自动或半自动地计算最优增益曲线。
算法数学模型
假设接收到的射频信号为 ( s(t) ),其中 ( t ) 代表时间(对应深度 ( d = c \\cdot t / 2 ),( c ) 为声速)。组织的衰减模型通常近似为指数衰减:
[ A(d) = A_0 \\cdot e^{-\\alpha f d} ]
其中:
- ( A(d) ) 是深度 ( d ) 处的信号幅度。
- ( A_0 ) 是初始幅度。
- ( \\alpha ) 是衰减系数(dB/(MHz·cm))。
- ( f ) 是超声中心频率。
为了补偿这种衰减,我们需要施加一个增益函数 ( G(d) ),使得补偿后的信号 ( s’(t) = s(t) \\cdot G(d) )。理想情况下,( G(d) ) 应为 ( e^{+\\alpha f d} ),即与衰减因子互为倒数。
在实际的数字图像处理中,我们将图像在深度方向(Y轴)划分为若干个段(Segment),对每一段应用一个特定的线性或非线性的增益值。设图像深度方向有 ( N ) 个段,第 ( i ) 段的增益为 ( g_i ),则该段内每个像素的亮度值 ( I(x, y) ) 将乘以 ( g_i )。
算法实现步骤
以下是一个自适应分段增益算法的典型实现流程,适用于已进行对数压缩后的B模式图像(像素值为0-255)。
代码示例(Python + OpenCV)
以下示例演示了如何对一幅模拟的超声图像(已对数压缩)应用分段增益。
import cv2
import numpy as np
import matplotlib.pyplot as plt
def adaptive_segment_gain(image, num_segments=8, target_intensity=128, gain_clip=(0.5, 2.0)):
\”\”\”
自适应分段增益算法
Args:
image: 输入灰度图像 (uint8)
num_segments: 分段数量
target_intensity: 目标灰度强度
gain_clip: 增益限幅范围 (min, max)
Returns:
处理后的图像
\”\”\”
h, w = image.shape
# 1. 图像分段 (均匀划分)
segment_height = h // num_segments
segment_boundaries = [i * segment_height for i

