一、基本步骤
1、图像预处理,包括高斯滤波,图像去噪,图像增强等
2、图像分割
3、孔洞填充
4、连通域标记
5、特征提取
6、结果输出
二、图像的预处理
为了方便计算,系统通常将获取的图片灰度化。将彩色图像转化成为灰度图像的过程就称为图像的灰度化处理。彩色图像中R、G、B三个分量的值决定了具体的像素点。一个像素点可以有上千万种颜色。而灰度图像是一种彩色图像,但是它的特点在于R、G、B三个分量具体的值是一致的。灰度图中每个像素点的变化区间是0到255,由于方便计算,所以在实际工程处理中会先将各种格式的图像转变成灰度图像。在保留图像轮廓和特征的基础上,灰度图仍然能够反映整幅图像轮廓和纹理。在Opencv里面有实现图像灰度化的接口。调用OpenCV中的cvSmooth函数进行中值滤波处理,以去除细小毛刺。
三、图像分割
将图像分离为目标像素和背景像素,初始分割之后一般需要进行形态学处理才能满足使用要求。
常用分割方法:直接输入;硬阈值分割;软阈值分割。
常用形态学处理:连通、膨胀、腐蚀、开操作、闭操作、顶帽变换、击中与不击中变换、交集、差异、骨架、边界等。
阈值分割又包括:
1)简单阈值分割threshold
适用范围:目标与背景之间存在灰度差(如果环境稳定,阈值可以在离线状态下一次确定)
2)动态阈值分割dyn_threshold
适用范围:背景不均一无法确定全局阈值、目标经常表现为比背景局部亮一些或者暗一些。这时候需要通过其领域来找到一个合适的阈值进行分割。
确定其领域的方法是:通过一些平滑滤波算子来确定领域,例如mean_image或者binomial_filter
3)自动全局阈值方法bin_threshold
四、孔洞填充
我们在进行图像分割后,分割结果有时会有一些小孔洞,如图1所示,其中黑白两色表示两种不同的类别。一般情况下,这些孔洞属于错分情况,为了优化结果,我们通常对这些孔洞进行填充。
填充结果如图2所示,三个孔洞均被填充。
五、连通域标记
进行连通域标记之前的图像一般是经过阈值分割处理为二值图像。二值图像中可能有多个连通区域,进行 图像检测的吋候往往关心的是每个连通域各自的特性,为了提取不同区域的特征,就需要使用连通域标记 的方法把不同的连通域区分开來。连通区域标记算法通常应用在图像分析领域,例如,在光学字符识别中对字符分割提取、医学图像处理中提取感兴趣的目标和视频图像中对运动的前景目标进行分割和提取等等。
下面是一个二值图像被标记后,比较形象的显示效果
六、特征提取
特征是一个数字图像中“有趣”的部分,它是许多计算机图像分析算法的起点。特征提取是图象处理中的一个初级运算,也就是说它是对一个图像进行的第一个运算处理。它检查每个像素来确定该像素是否代表一个特征,一般提取的是边缘、角,文理等。
七、缺陷检测六大基本方法
1. blob + 特征
2. blob + 特征+ 差分
3. 频域 + 空间域
4. 光度立体法
5. 特征训练(分类器,机器学习)
6. 测量
参考: