将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,首先,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。
由于图片上有细小的多余的孔洞,会对处理图像有影响,所以要对图像进一步优化。
继续对图片优化,具体算法如下: > bw=bwareaopen(i2,200);%填充孔洞 >> se=strel('disk',1);
由此图像可知,把中间的轴承部分去除,为边缘检测奠定基础。
3、 对图像用roberts算子进行边缘检测,对轮廓进行追踪和优化
Roberts算子是一种最简单的算子,是一种利用局部差分算子寻找边缘的算子,他采用对角线方向相邻两象素之差近似梯度幅值检测边缘。检测垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感,无法抑制噪声的影响。Roberts边缘检测算子是图像处理中最基本的边缘检测算子,其认为任意一对相互垂直方向上的差分可以看成是梯度的近似求解,采用对角线方向相邻两像素之差,即某一像素点(i,j)
的
Roberts
算
子
值
为
:
所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。
算法如下:
level = graythresh(i1);%确定灰度图像的阈值
>> i2=im2bw(i1,level);%图像二值化 >> figure,imshow(i2) 运行的图片如下: bw=imclose(bw,se);
bw=imfill(bw,'holes'); figure,imshow(bw)
f(x)=|f(i,j)-f(i+1,j+1)|+|f(i+1,j)-f(i,j+1)|。
从上述轮廓提取算法分析可知,当目标区中的内部点位于图像边缘区时,这些点的一些
N8 ( p) 像素点有可能分布在图像的背景区,
对这些点运用上述轮廓提取算法,就会把这些点判为边界点,所以会出现轮廓线“加厚”现象。需要优化轮廓, 去除掉多余的边界点,使轮廓最优化和最简化,从而获得准确的齿形检测数据。
算法如下:
Bw1= edge(bw,'roberts',0.1);
>> bw1 = edge(bw,'roberts',0.5); >> bw1 = edge(bw,'roberts',0.7); imshow(bw1)