专利名称:基于元胞自动机的图像边缘检测算法的制作方法
技术领域:
本发明涉及一种图像边缘检测算法,特别是一种基于元胞自动机的对图像边缘进行检测的算法。
背景技术:
边缘检测是图像分析领域最经常用到的一种图像分析方法,它在极大的降低图像的数据量的同时,保留了图像中分析目标的重要信息——边缘。边缘是分析目标和背景之间的分界面,这意味着,如果一幅图像中的边缘能够精确的定位的话,那么图像中的分析目标就能够被辨识出来,并且可以测量出该目标的各种属性,如周长,面积,形状,等等。在计算机视觉和其它许多图像处理领域,这种对图像中分析目标的辨识和分类应用的非常广泛,因此边缘检测在图像分析领域已经成为了一个十分必要的工具。
在图像中,边缘指的是图像灰度值发生剧烈变化的地方。基于图像导数的算法是检测这些灰度值剧烈变化的最有效的方法。图像的一阶导数会在图像的边缘处产生局部最大值,例如Sobel和Robert等算子;而二阶导数会在图像的边缘处产生过零点,例如Laplace和Log等算子。在没有噪声干扰的情况下,相对于一阶导数,图像的二阶导数能够更加精确的检测出图像的边缘。但由于二阶导数相对于一阶导数对干扰噪声更加敏感,因此当图像存在一定的噪声干扰时,使用二阶导数检测图像边缘,会产生大量的伪过零点,从而降低了边缘检测的精度。另外在计算图像的导数时,计算结果是分布在
区间中的连续值,而图像灰度值是分布在离散空间{0,1,2,...,255}中的离散值,这样就导致了舍入误差,影响了最后的处理结果。
发明内容
本发明的目的在于针对上述基于图像导数的算法存在的缺陷,提出基于元胞自动机的图像检测算法,提高图像边缘检测的精度。
为达到上述目的,本发明的构思是通过模拟物理扩散模型计算图像的二阶导数,避免了使用对图像灰度值进行差分的方法求解图像二阶导数,计算过程中不存在舍入误差,实现对图像二阶导数的精确求解。通过延长迭代次数,达到抑制伪过零点的目的。
根据上述的发明构思,本发明采用下述技术方案一种基于元胞自动机的图像边缘检测算法,其特征在于通过模拟物理扩散模型计算图像的二阶导数,实现对图像二阶导数的精确求解,通过延长迭代次数,达到抑制伪过零点,其操作步骤为(1)对物理扩散方程的模拟模拟物理模型的微观粒子的自由运动;(2)计算图像的二阶导数将迭代t次后得到的图像Pt(x,y)与原始图像Po(x,y)相减;(3)搜索过零点,确定边缘通过增加算法迭代次数t,减少图像二阶导数中的由噪声引起的伪过零点。
上述对步骤(1)中物理扩散方程的模拟,其具体操作步骤如下(1)将图像的每个像素点看成一个元胞;每个元胞与其上下左右四个邻居组成一个Moore邻域;每个元胞的状态集定义为元胞内可能包含的粒子数;每个元胞包含的粒子数大于0,并且小于256;(2)初始化,定义每个元胞的初始状态与图像中相对应的像素点的灰度值相等;(3)在时刻t,产生随机序列ux,y(i)={1,2,3,4,....},其中ux,y(i)等于1,2,3,4的概率均为1/4;(4)计算元胞中分别向其四个邻居移动的粒子数Ni(x,y)=Σj=1ρt(x,y)δ(ux,y(j)-i);]]>其中,δ(x)为Kronecker函数δ(x)=1x=00x≠0;]]>i=0,1,2,3代表元胞的四个邻居;(5)统计每个元胞中的粒子数ρt+1(x,y)=N1(x-1,y)+N2(x,y+1)+N3(x+1,y)+N4(x,y-1)(6)重复步骤(3)~(5)。
上述的步骤(2)中的计算图像的二阶导数,其算法如下将迭代t次后得到的图像ρt(x,y)与原始图像ρ0(x,y)相减,并除以t再乘以1/4,即计算ρt(x,y)-ρ0(x,y)4t.]]>当迭代次数t足够大时,伪过零点可以得到很好的抑制。
上述的步骤(3)中的搜索过零点,确定边缘其实现方法如下定义L(x,y)=ρt(x,y)-ρ0(x,y)4t;]]>C(x,y)为位于坐标位置(x,y)处的元胞;阈值T=ΣL(x,y)2M,]]>其中M为图像像素点总数。则满足以下条件的元胞可确认为图像边缘。
(1)L(x,y)≠0如果|L(x-1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;(2)L(x,y)=0如果L(x-1,y)·L(x+1,y)<0并且|L(x-1,y)-L(x+1,y)|>T那么C(x,y)为图像边缘;如果L(x-1,y-1)·L(x+1,y+1)<0并且|L(x-1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x+1,y+1)<0并且|L(x+1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x,y-1)<0并且|L(x+1,y-1)-L(x,y+1)|>T那么C(x,y)为图像边缘。
本发明与现有的技术相比较,具有以下显而易见的突出实质性特点和显著优点本发明通过模拟物理扩散模型计算图像的二阶导数,避免了使用对图像灰度值进行差分的方法求解图像二阶导数,计算过程中不存在舍入误差,实现对图像二阶导数的精确求解,克服了二阶导数对噪声敏感的缺陷,极大的提高了抗噪声的性能;通过延长迭代次数,达到抑制伪过零点的目的,提高了边缘检测的准确性。
图1是物理扩散模型图,图中a)是Moore邻域示意图;b)粒子从邻居进入元胞;c)粒子从元胞进入邻居。
图2是本发明实施例的算法程序图。
图3是图2示例的脑部核磁共振图像。
图4是脑部核磁共振图像的边缘图。
图5是肺部CT图像。
图6是肺部CT图像的边缘图。
图7是某人Lena图像。
图8是某人Lena图像的边缘图。
具体实施例方式
本发明的实施例,结合附图详细叙述如下。
实施例1核磁共振图像的边缘检测1)将图像(如图3所示)的每个像素点看成一个元胞;每个元胞与其上下左右四个邻居组成一个Moore邻域(如图1.a);每个元胞的状态集定义为元胞内可能包含的粒子数;每个元胞包含的粒子数大于0,并且小于256。
2)初始化,定义每个元胞的初始状态与图像中相对应的像素点的灰度值相等。
3)在时刻t,产生随机序列ux,y(i)={1,2,3,4,....},其中ux,y(i)等于1,2,3,4的概率均为1/4。
4)计算元胞中分别向其四个邻居移动的粒子数Ni(x,y)=Σj=1ρt(x,y)δ(ux,y(j)-i).]]>其中,δ(x)为Kronecker函数δ(x)=1x=00x≠0;]]>i=0,1,2,3代表元胞的四个邻居,如图1.c所示。
5)统计每个元胞中的粒子数ρt+1(x,y)=N1(x-1,y)+N2(x,y+1)+N3(x+1,y)+N4(x,y-1)。
6)重复步骤(3)~(5)。
7)将迭代t次后得到的图像ρt(x,y)与原始图像ρ0(x,y)相减,并除以t再乘以1/4,即计算ρt(x,y)-ρ0(x,y)4t.]]>8)搜索过零点,确定边缘(如图4所示)。凡是满足以下条件的元胞可确认为图像边缘。
a)L(x,y)≠0如果|L(x-1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;b)L(x,y)=0如果L(x-1,y)·L(x+1,y)<0并且|L(x-1,y)-L(x+1,y)>T那么C(x,y)为图像边缘;如果L(x-1,y-1)·L(x+1,y+1)<0并且|L(x-1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x+1,y+1)<0并且|L(x+1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x,y-1)<0并且|L(x+1,y-1)-L(x,y+1)|>T那么C(x,y)为图像边缘;实施例2CT图像的边缘检测1)将图像(如图5所示)的每个像素点看成一个元胞;每个元胞与其上下左右四个邻居组成一个Moore邻域(如图1.a);每个元胞的状态集定义为元胞内可能包含的粒子数;每个元胞包含的粒子数大于0,并且小于256。
2)初始化,定义每个元胞的初始状态与图像中相对应的像素点的灰度值相等。
3)在时刻t,产生随机序列ux,y(i)={1,2,3,4,....},其中ux,y(i)等于1,2,3,4的概率均为1/4。
4)计算元胞中分别向其四个邻居移动的粒子数Ni(x,y)=Σj=1ρt(x,y)δ(ux,y(j)-i).]]>其中,δ(x)为Kronecker函数δ(x)=1x=00x≠0;]]>i=0,1,2,3代表元胞的四个邻居,如图1.c所示。
5)统计每个元胞中的粒子数ρt+1(x,y)=N1(x-1,y)+N2(x,y+1)+N3(x+1,y)+N4(x,y-1)。
6)重复步骤(3)~(5)。
7)将迭代t次后得到的图像ρt(x,y)与原始图像ρ0(x,y)相减,并除以t再乘以1/4,即计算ρt(x,y)-ρ0(x,y)4t.]]>8)搜索过零点,确定边缘(如图6)。凡是满足以下条件的元胞可确认为图像边缘。
c)L(x,y)≠0如果|L(x-1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;
d)L(x,y)=0如果L(x-1,y)·L(x+1,y)<0并且|L(x-1,y)-L(x+1,y)|>T那么C(x,y)为图像边缘;如果L(x-1,y-1)·L(x+1,y+1)<0并且|L(x-1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x+1,y+1)<0并且|L(x+1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x,y-1)<0并且|L(x+1,y-1)-L(x,y+1)|>T那么C(x,y)为图像边缘;实施例3数码图像的边缘检测1)将图像(如图7所示)的每个像素点看成一个元胞;每个元胞与其上下左右四个邻居组成一个Moore邻域(如图1.a);每个元胞的状态集定义为元胞内可能包含的粒子数;每个元胞包含的粒子数大于0,并且小于256。
2)初始化,定义每个元胞的初始状态与图像中相对应的像素点的灰度值相等。
3)在时刻t,产生随机序列ux,y(i)={1,2,3,4,....},其中ux,y(i)等于1,2,3,4的概率均为1/4。
4)计算元胞中分别向其四个邻居移动的粒子数Ni(x,y)=Σj=1ρt(x,y)δ(ux,y(j)-i).]]>其中,δ(x)为Kronecker函数δ(x)=1x=00x≠0;]]>i=0,1,2,3代表元胞的四个邻居,如图1.c所示。
5)统计每个元胞中的粒子数ρt+1(x,y)=N1(x-1,y)+N2(x,y+1)+N3(x+1,y)+N4(x,y-1)。
6)重复步骤(3)~(5)。
7)将迭代t次后得到的图像ρt(x,y)与原始图像ρ0(x,y)相减,并除以t再乘以1/4,即计算ρt(x,y)-ρ0(x,y)4t.]]>
8)搜索过零点,确定边缘(如图8所示)。凡是满足以下条件的元胞可确认为图像边缘。
e)L(x,y)≠0如果|L(x-1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;f)L(x,y)=0如果L(x-1,y)·L(x+1,y)<0并且|L(x-1,y)-L(x+1,y)|>T那么C(x,y)为图像边缘;如果L(x-1,y-1)·L(x+1,y+1)<0并且|L(x-1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x+1,y+1)<0并且|L(x+1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x,y-1)<0并且|L(x+1,y-1)-L(x,y+1)|>T那么C(x,y)为图像边缘。
权利要求
1.一种基于元胞自动机的图像边缘检测算法,其特征在于通过模拟物理扩散模型计算图像的二阶导数,实现对图像二阶导数的精确求解,通过延长迭代次数,达到抑制伪过零点,其操作步骤为(1)对物理扩散方程的模拟模拟物理模型的微观粒子的自由运动;(2)计算图像的二阶导数将迭代t次后得到的图像Pt(x,y)与原始图像Po(x,y)相减;(3)搜索过零点,确定边缘通过增加算法迭代次数t,减少图像二阶导数中的由噪声引起的伪过零点。
2.根据权利要求1所述的基于元胞自动机的图像边缘检测算法,其特征在于所述的步骤(1)中的对物理扩散方程的模拟,其具体操作步骤如下(1)将图像的每个像素点看成一个元胞;每个元胞与其上下左右四个邻居组成一个Moore邻域;每个元胞的状态集定义为元胞内可能包含的粒子数;每个元胞包含的粒子数大于0,并且小于256;(2)初始化,定义每个元胞的初始状态与图像中相对应的像素点的灰度值相等;(3)在时刻t,产生随机序列ux,y(i)={1,2,3,4,....},其中ux,y(i)等于1,2,3,4的概率均为1/4;(4)计算元胞中分别向其四个邻居移动的粒子数Ni(x,y)=Σj=1ρt(x,y)δ(ux,y(j)-i)]]>;其中,δ(x)为Kronecker函数δ(x)=1x=00x≠0]]>;i=0,1,2,3代表元胞的四个邻居;(5)统计每个元胞中的粒子数ρt+1(x,y)=N1(x-1,y)+N2(x,y+1)+N3(x+1,y)+N4(x,y-1)(6)重复步骤(3)~(5)。
3.根据权利要求1所述的基于元胞自动机的图像边缘检测算法,其特征在于所述的步骤(2)中的计算图像的二阶导数,其算法如下将迭代t次后得到的图像ρt(x,y)与原始图像ρ0(x,y)相减,并除以t再乘以1/4,即计算ρt(x,y)-ρ0(x,y)4t]]>。当迭代次数t足够大时,伪过零点可以得到很好的抑制。
4.根据权利要求1所述的基于元胞自动机的图像边缘检测算法,其特征在于所述的步骤(3)中的搜索过零点确定边绝,其实现方法如下定义L(x,y)=ρt(x,y)-ρ0(x,y)4t]]>;C(x,y)为位于坐标位置(x,y)处的元胞;阈值T=ΣL(x,y)2M]]>,其中M为图像像素点总数。则满足以下条件的元胞可确认为图像边缘。(1)L(x,y)≠0如果|L(x-1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y-1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x-1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;如果|L(x+1,y+1)-L(x,y)|>T,那么C(x,y)为图像边缘;(2)L(x,y)=0如果L(x-1,y)·L(x+1,y)<0并且|L(x-1,y)-L(x+1,y)|>T那么C(x,y)为图像边缘;如果L(x-1,y-1)·L(x+1,y+1)<0并且|L(x-1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x+1,y+1)<0并且|L(x+1,y-1)-L(x+1,y+1)|>T那么C(x,y)为图像边缘;如果L(x+1,y-1)·L(x,y-1)<0并且|L(x+1,y-1)-L(x,y+1)|>T那么C(x,y)为图像边缘。
全文摘要
本发明涉及一种基于元胞自动机的图像边缘检测算法。它是通过模拟物理扩散模型计算图像的二阶导数,实现对图像二阶导数的精确求解,通过延长迭代次数,达到抑制伪过零点,其操作步骤为(1)对物理扩散方程的模拟;(2)计算图像的二阶导数;(3)搜索过零点,确定边缘。本发明克服了二阶导数对噪声敏感的缺陷,极大地提高了抗噪声的性能,提高了求解图像二阶导数的精度,提高了边缘检测的准确性。
文档编号G06T7/60GK1971619SQ20061011913
公开日2007年5月30日 申请日期2006年12月5日 优先权日2006年12月5日
发明者严壮志, 陈玉, 刘书朋 申请人:上海大学