4. 病斑视觉特征分析

在完成叶片图像预处理之后,真正决定分割成败的,是我们能否把“病斑”和“健康组织”在视觉上区分开来。分割算法本质上是在某个特征空间里寻找一条分界线,而这条分界线是否容易找到,取决于两类组织在颜色、纹理、形状、边缘等维度上的差异有多大。本节围绕这四个维度展开观察方法,并给出特征可分离性的评估思路,为后续阈值选取与分类器设计提供依据。

颜色特征:最直接也最易受干扰的维度

颜色是病斑最直观的表征。健康叶片通常呈现较均匀的绿色,叶绿素在可见光波段的强吸收使绿通道数值相对较高;而病斑区域由于细胞坏死、色素降解或真菌孢子堆积,往往表现为黄化、褐变、灰白或黑褐。观察时不能只看 RGB 三通道的绝对值,因为光照强度和色温会整体抬升或压低数值。更稳健的做法是转换到对亮度不敏感的色彩空间,例如 HSV 中的 H(色调)与 S(饱和度),或 Lab 中的 a、b 分量。

以常见的褐色病斑为例,在 HSV 空间中,健康绿色组织的 H 分量大致落在 60°~120° 区间,而褐变区域 H 值偏向 10°~40°,两者在色调轴上形成明显间隔。实操中可以先在叶片上手动框选若干健康小块与病斑小块,分别统计其 H 分量直方图,观察两个分布是否重叠。若重叠很小,说明单靠色调即可粗分;若重叠明显,则需引入饱和度或亮度辅助,或转向纹理特征。

观察颜色特征时,务必在同一张图像、同一光照条件下对比健康与病斑样本,避免跨图像比较造成误判。建议至少采集 5 组健康块与 5 组病斑块,每组不少于 200 像素,统计均值与标准差,作为后续阈值设定的参考。

纹理特征:颜色相近时的关键补充

有些病害在早期颜色变化并不显著,但表面质地已经改变。例如白粉病在叶面形成粉状霉层,霜霉病在叶背产生霉状物,这些区域的颜色可能与健康组织接近,却呈现出更细密的高频纹理。此时可借助灰度共生矩阵(GLCM)提取对比度、能量、相关性、同质性等指标,或使用局部二值模式(LBP)描述微观结构。

一个可操作的观察流程是:将图像转为灰度,在健康区域和病斑区域各取一个 32×32 的窗口,计算其 GLCM 的对比度。健康叶面通常较为平滑,对比度偏低;霉层或坏死组织因颗粒感强,对比度偏高。若两类窗口的对比度均值差异达到 1.5 倍以上,纹理特征就具备较好的判别力。需要注意,纹理计算对窗口尺寸敏感,窗口过小统计不稳,过大则跨越组织边界,一般以 16~64 像素为宜。

形状与边缘:从区域到轮廓的判别线索

病斑的形状往往带有病害类型的“签名”。真菌性叶斑多呈近圆形或不规则圆形,细菌性病斑常受叶脉限制而呈多角形,病毒性病害则可能表现为条斑或环斑。观察形状时,可关注面积、周长、圆度(4πA/P²)、长宽比、矩形度等几何量。圆度接近 1 说明轮廓接近圆形,明显小于 1 则提示不规则或受叶脉切割。

边缘特征同样重要。健康与病斑的交界处可能是突变的锐利边界,也可能是逐渐过渡的晕圈。锐利边界在梯度图上表现为强响应,适合用边缘检测或活动轮廓模型捕捉;渐变边界则更适合基于区域生长或水平集的方法。观察时可对图像求 Sobel 梯度,比较病斑边缘处的梯度幅值与叶片内部平滑区域的差异,若边缘梯度显著偏高,说明边界清晰、可分性强。

病斑视觉特征四维观察与可分离性评估 颜色特征 HSV 的 H / S 分量 Lab 的 a / b 分量 健康绿 H≈60°~120° 褐变 H≈10°~40° 纹理特征 GLCM 对比度 / 能量 LBP 微观结构 健康叶面较平滑 霉层颗粒感强 形状特征 面积 / 周长 / 圆度 长宽比 / 矩形度 真菌斑近圆形 细菌斑受叶脉呈多角形 边缘特征 Sobel 梯度幅值 锐利边界 vs 渐变晕圈 锐利→边缘检测 渐变→区域生长 特征向量组合 颜色 + 纹理 + 形状 + 边缘 可分离性评估 类间均值差 / 类内标准差 → 判别比 直方图重叠小 → 可分性强 → 阈值或分类器可行

健康组织与病斑组织的差异表达

把上述四个维度落到具体表达上,可以构造一个特征向量 f = [H, S, V, GLCM对比度, 圆度, 边缘梯度均值]。对每个候选区域计算该向量,健康组织与病斑组织就分别对应特征空间中的两簇点。差异表达的核心不是罗列数值,而是看两簇点在每个维度上的分布是否拉开。例如某批样本中,健康组织的 H 均值为 95°、标准差 8°,病斑组织 H 均值为 28°、标准差 10°,两者均值差 67°,远大于合并标准差,说明色调维度可分性很强;而若 V 分量均值分别为 140 和 132、标准差均约 25,则亮度维度几乎不可分,应避免单独使用。

需要强调的是,差异表达应尽量在归一化之后进行。不同拍摄设备、不同曝光时间会导致同一组织数值漂移,建议对每张图像先做白平衡或灰度世界归一化,再提取特征,使跨图像的比较具有意义。

特征可分离性评估:从观察到量化

观察只能给出定性判断,真正指导算法设计的是可分离性指标。最常用的是判别比(Fisher 判别准则的简化形式):对某一特征,计算两类样本均值之差与类内标准差之和的比值,比值越大说明该特征越能把两类分开。实操中可按以下方式执行:

  1. 在若干张代表性叶片图像上,人工标注健康区域与病斑区域的样本块,每类不少于 30 块。
  2. 对每个样本块提取候选特征,记录为表格。
  3. 逐特征计算类间均值差与类内标准差,得到判别比并排序。
  4. 保留判别比高的 2~4 个特征,剔除冗余或判别比接近 1 的特征。

下面是一段可直接参考的特征统计示例代码,用于计算单个特征的判别比:

import numpy as np

def fisher_ratio(healthy, lesion):
    # healthy, lesion: 一维特征数组
    mu_h, mu_l = np.mean(healthy), np.mean(lesion)
    sd_h, sd_l = np.std(healthy), np.std(lesion)
    return abs(mu_h - mu_l) / (sd_h + sd_l + 1e-6)

# 示例:H 分量(单位:度)
H_healthy = np.array([92, 98, 88, 101, 95, 90, 97, 93])
H_lesion  = np.array([30, 25, 35, 28, 22, 33, 27, 31])
print("H 判别比:", round(fisher_ratio(H_healthy, H_lesion), 2))
# 输出示例:H 判别比: 3.42(数值为教学示例,非实测结果)

判别比的经验判断是:大于 2 通常认为可分性良好,1~2 之间需要结合其他特征,接近或小于 1 则基本不可单独使用。若多个特征判别比都偏低,说明当前图像质量或特征选择存在问题,应回到预处理阶段检查光照、对焦与色彩还原,而不是强行调阈值。

可分离性评估必须使用与最终分割同一来源的图像。若用实验室理想光照下的样本评估、却部署到田间自然光图像上,判别比会显著下降。建议评估集覆盖不同光照、不同叶位和不同发病阶段,至少包含 20 张图像,才能对特征稳定性作出可靠判断。

把观察结论转化为分割策略

完成上述分析后,应形成一份简明的特征选择结论:哪些维度可分、判别比大约多少、推荐使用哪种分割思路。例如颜色判别比高且边缘锐利,可优先采用 HSV 阈值加形态学清理;颜色重叠但纹理差异明显,可转向 GLCM 或 LBP 特征配合小窗口分类;形状规则且边界清晰,则可考虑边缘检测加轮廓拟合。这样的结论直接决定后续阈值范围、窗口尺寸和分类器输入维度,避免盲目试参。特征分析做得扎实,分割阶段就只需微调;反之,若跳过这一步,后续任何算法都容易陷入反复调参却难以稳定的困境。