ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

计算机视觉中的数据清洗与基础特征化

2026/8/3 5:14:24 拓冰建站 浏览量
计算机视觉中的数据清洗与基础特征化

一、模块:数据清洗—— 去除“脏”数据,统一格式

数据清洗的目标是消除外界干扰、标准数据格式,确保后续算法不会因为“脏数据”而失效。如果噪声不清洗,后续的边缘检测(Canny)或CNN卷积核会把噪点当作“物体边缘”提取,导致误检。

1.1噪声过滤

脏数据来源:传感器瑕疵、光线干扰、传输丢失等。代码中的add_peppersalt_noise函数模拟了典型的“椒盐噪声”(随机黑白像素点)。

清洗的方式:

其一,中值滤波(cv2.medianBlur:这是应对椒盐噪声最有效的清洗手段,因为它用邻域像素的中值代替中心像素,能完美过滤孤立噪点,同时不模糊边缘,能够保护图像结构。

其二,高斯滤波(cv2.GaussianBlur:假设噪声服从高斯分布,通过加权平均平滑噪声,属于经典的“低通滤波”清洗,能有效抑制高频噪声。

2. 空间与尺寸规范化

特征化的目标是将清洗后的像素值,转化为具有语义区分度的数字属性,如亮暗、对比度、区域连通性,为后续高级任务中轮廓提取、OCR、目标检测提供输入。

第二模块:基础特征化(Basic Featureization)—— 将像素转换为“可计算的特征”

2.1.亮度对比度特征提取

代码中的cv2.addWeighted(a, 0.5, b, 0.5, 10)实现了图像的加权融合。

这不仅仅是简单的亮度调整,而是融合了多模态信息。例如将两张在不同光照下拍摄的图像融合,提取更稳健的纹理特征。cv2.add的饱和运算(超过255截断为255)可以强制拉伸对比度,让暗部和亮部特征更分明。

基础特征化通过运算,人为地放大了图像中感兴趣的信号,如边缘、纹理区域,压制了背景区域,让特征空间更利于区分。

2.2空间二值化分割

代码中的cv2.threshold使用了全局阈值。

它将原本 0~255 的连续灰度值,硬性映射为 0 或 255。这相当于把图像“二值化”,从而完成了目标与背景的分离。

THRESH_BINARY:大于175为白(目标),小于为黑(背景)。

THRESH_TOZERO:保留大于175的原始灰度,小于的变黑。

这是最基础的图像分割特征。二值化后,计算机可以轻松通过连通区域分析,提取出物体的外轮廓、面积、质心、周长等几何特征。没有这一步,高级算法将无从下手。

第三模块:流水线协同 —— 从“原始像素”到“可输入特征”

原始图像
↓ (数据清洗: 尺寸统一) → resize / 边界填充
↓ (数据清洗: 去噪) → medianBlur / GaussianBlur
↓ (数据清洗: 增强/融合) → addWeighted (提升对比度/融合特征)
↓ (基础特征化: 分割) → threshold (提取二值化目标轮廓)
↓ (输出给高级视觉任务) → 轮廓检测、OCR、目标匹配

以上所述不是孤立的,它们构成了一条完整的传统计算机视觉预处理流水线,直接让CNN去学,模型可能会陷入过拟合噪声,或者因为图像尺寸不一而崩溃。清洗和基础特征化是给机器“打地基”,让高层算法能在稳固的基础上学习。