工业生产线在线检测数据数字化处理系统设计
x=RGB2gray(j); subplot(1,2,1); imshow(x);
title('原图像'); f=double(x); [m,n]=size(f);
h=fspecial('gaussian',[25,25],80); q=imfilter(f,h,'same'); s=log(f+0.03)-log(q+0.03); r=exp(s);
max_r=max(r(:))*0.27; min_r=min(r(:));
r=(r-min_r)/(max_r-min_r); index=find(r>1); r(index)=1; R=mat2gray(r); subplot(1,2,2); imshow(R);
title('处理后的图像'); G=im2bw(R,0.7); imshow(G); I=uint8(G);
bw=edge(I,'sobel'); imshow(bw);
图3-8 增强后的图片 3.2.1.3二值化处理
进行完图像增强后的图像是灰度图像,灰度图像的每个像素都可以在0-255之间取值,每个像素都可以有如此多的取值,这样的图像计算和处理起来十分的麻烦,而且容易出错,所以,就要对图像进行二值化处理,使图像的每个像素只
13
工业生产线在线检测数据数字化处理系统设计
能去0与1两个值,“0”作为目标区域,“1”作为背景区域,反之,亦可以,这样计算将变得相对简单,也不容易出错。用来划分背景区域和目标区域的那个灰度值就称作为阈值,大于阈值的像素值全部设为1,小于阈值的则全部设为0.图像的二值化[11]处理是图像处理中最常用的技术,在图像处理中具有至关重要的地位。主要有三个原因,首先,在彩色图像或者灰度图像的处理过程中,都要先将图像进行二值化处理,然后再进行更深层次的计算。其次,在理论上和方法上图像二值化比灰度图像处理更加系统化,也更加稳定。 第三,当图像处理的对象是文字或者图纸的时候,从本质上来说,背景和图形也是一种二值化的图像。在图像二值化的原理如(3-6)所示
1; 当f(i,j)?t时
ft(i,j)? (3-6)
0; 当f(i,j)?t时
通常情况下,在二值化图像ft(i,j)中,数值是0的表示背景区域,数值是1的代表目标区域。而阈值t则是需要求解的,求解阈值t的方法称为阈值选择,常用的阈值选择方法有以下几种:
①判别分析法。用阈值t将图像的灰度值直方图中的灰度值的分布分为两组,求出是两组分离达到最好的阈值t,这就是判别分析法。用判别分析法确定阈值t的方法如下所示,假设阈值是t,给定的图像具有L级灰度值(1,2,???,L),把大于t的灰度值的像素和小于t的像素分成两组,设为1组和2组,设i组
(i?1,2),的像素数为?i,平均灰度值为Mi,方差为?2,全体像素的平均值为MT,则组内方差为
22?????21122?? W?1??2 (3-7)
组间的方差为
?1(M1?MT)2??2(M2?MT)2 ??
?1??22B
?1?2(M1?M2)2? (3-8)
?1??22如果设全部像素的灰度值的方差为?T,那么,则有
14
工业生产线在线检测数据数字化处理系统设计
222?T??W??B (3-9)
因此可以得到判别比为
22?B?B?222?W?T??B (3-10)
2由于全方差?T是一个常数,与阈值没有关系,由此可以得到,只需让?B最2大就可使判别比取得最大值,所以只需使t的值不断变化并求出?B最大时对应
的t的值。 ②p-参数法。若要被分离的图像的面积大约等于S0,其与整个图像的面积S之比为p=S0/S。在选择阈值时,要使灰度直方图中大于t的像素对其他所有像素的比值亦为p为此,因此,要想求出阈值,只需要在图像的灰度直方图中,从灰度值高的一边开始计算,求出累积相对读数分布,当累积相对读数的值达到为p时的灰度值就是所求的阈值,这种方法也经常被用到。
③状态法。状态法只是用于灰度直方图呈现双峰型分布的条件下,这时,阈值t就是两个峰间的低谷上的灰度值。在复杂的图像和瘦到很多干扰的图像中,直方图不能呈现明显的双峰型,所以,状态法有时并不适用。 二值化后的图像如图3-9所示,图像二值化的主要程序为:
T=0.5*(double(min(I(:)))+double(max(I(:)))); done=false; while ~done g=I>=T;
Tnext=0.5*(mean(I(g))+mean(I(~g))); done=abs(T-Tnext)<0.5; T=Tnext; end J=I;
K=find(J>=T); J(K)=255; K=find(J 15 工业生产线在线检测数据数字化处理系统设计 图3-9 二值化图片 3.2.1.4边缘检测与图像分割 对于图像处理来说,边缘检测是必须的。因为从边缘的定义上就可以看出,边缘是图像的重要的基本特征。边缘蕴含着图像的方向、阶跃性质与形状重要的信息,而这些信息十分的重要,它可以应用在在图像分割、特征提取、图像分类、图像配准以及图像识别中。图像边缘可以分为两大类,一类是阶跃状边缘,另一类是屋顶状边缘,其中两边灰度值有明显的变化的是阶跃状边缘;而在灰度减小和增加的交界处的是屋顶状边缘。首先通过利用边缘增强算子,来突出图像中局边缘,然后再定义像素的“边缘强度”,最后通过设置阈值来提取边缘点集是边缘检测的基本的思想。边缘检测方法有Sobel算子法[12]、 Robert算子法[13]、 PreWltt算子法[14]、LOG算子法、Canny算子法、Zerocross算子法[15]以及二值图像边缘检测法等。这些算法各有特点,适用的条件也不一样。本设计中采用的是Sobel算子法。 图像分割是对图像进行处理、分析的一项基本内容,通过图像分割可以分割出所需要的部分进行分析。图像分割是从图像处理到读数识别的一个转折点,只有分割出图像后才能进行真正意义上的图像分析与图像计算。因此,对于图像分析来说是非常重要的。目前已经有很多的图像分割算法,如门限法、区域生长法、匹配法、分裂-合并法、水线法、边缘检测法、马尔可夫随机场模型法、小波分析法、多尺度法、数学形态法等。这些算法都是针对于一类图像,没有哪一种算法能够适用于所有的图像,但是可以利用这些算法的原理以及算法中的一些思想处理一些其他的图像分割问题,由于在前面已经完成了边缘检测,所以在本设计中采用了基于边缘检测的图像分割。图3-10为边缘检测的结果 16