1.一种最大的正方形图像平滑块的计算方法,其特征在于,包括如下步骤:
1)定义正方形图像平滑块:假设I为8位灰度图像,其大小为m×m,pi,j为I中坐标为(i,j)的像素值,其中,pi,j∈[0,255],1≤i≤m,1≤j≤m,m为自然数,按“S”形状扫描顺序遍历图像,得到像素队列,从队列尾开始计算相邻像素的差值,设差值的绝对值为ei,j,则ei,j∈[0,255],由此得差值图像E,设E(x,y,k)为E中大小为k×k一个正方形块、(x,y)为其左上角坐标、ei,j为块E(x,y,k)中的元素,令E(x,y,k)中满足ei,j≤D的元素个数为d(x,y,k),其中D为阈值,定义:若 则此图像块为平滑块,否则为非平滑块,其中T为阈值、且0≤T≤1,T为图像块E(x,y,k)中满足ei,j≤D的像素所占的比例,计算平滑块时,阈值D取值越小,图像块越平滑,一般结合位平面进行取值;
2)计算图像正方形块中满足条件的像素个数:采用差值图像确定原始图像平滑块,计算左上角位置为(x,y)的最大平滑块,按行和列分别统计图像中满足条件ei,j≤D元素的个数,设H和V是大小为m×m的两个矩阵,H和V元素分别hi,j为和vi,j,其中hi,j表示第i行第1个元素到第j个元素之间满足条件ei,j≤D的元素个数,vi,j表示第j列第1个元素到第i个元素之间满足条件ei,j≤D的元素个数,令:fi,j为ei,j对应的标记,若ei,j≤D,fi,j=1,否则,fi,j=0,根据fi,j计算hi,j和vi,j,则有:从上得:
这里k为变量,
计算hi,j的值并得到H,
对vi,j,令:
同理计算vi,j的值并得到V,得到hi,j和vi,j的值后计算同一行或同一列中任意两个像素之间满足条件ei,j≤D的像素个数,设当前像素的位置为(i,j),sh(i,a,b)为第i行第a个元素与第b个元素之间满足条件ei,j≤D的像素个数,其中a<b,则有:其中,若a‑1=0,则hi,a‑1=0,设sv(j,a,b)为第j列第a个元素与第b个元素之间满足条件ei,j≤D的像素个数,则有:其中,若a‑1=0,则va‑1,j=0,得到同一行或同一列中任意两个像素之间满足条件ei,j≤D的像素个数sh(i,a,b)或sv(j,a,b)后,再结合E(x,y,k)中满足条件ei,j≤D的元素个数d(x,y,k),以递增的方式计算以(x,y)为左上角坐标任意大小正方形块中满足条件ei,j≤D的像素个数,对于左上角坐标为(x,y)边长为k+1的块E(x,y,k+1),则有:d(x,y,k+1)=d(x,y,k)+sh(x+k,x,x+k)+sv(y+k,y,y+k‑1),这样计算左上角坐标为(x,y)边长为k+1的块E(x,y,k+1)中满足条件的元素个数d(x,y,k+1),根据这个递推关系从边长为1开始,计算出左上角顶点为(x,y)所有边长的正方形中满足条件的元素个数:
设当前最大平滑块的左上角坐标为(xM,yM),边长为lM,若E(x,y,k)为当前的最大平滑块,令xM=x,yM=x,lM=k,w=d(x,y,lM)对该块进行记录,在计算E(x+1,y+1,k)时不需计算边长比lM小的正方形,只须从d(x+1,y+1,lM)计算即可,从上可知:d(x+1,y+1,lM)=w+sh(x+
1,x+1,x+lM‑1)+sv(y+1,y+1,y+lM‑1)‑sh(x,x,x+lM‑1)‑sv(y,y,y+lM‑1),若lM>0,同理通过d(x+n,y+n,k)计算d(x+n+1,y+n+1,k)的值,这样计算块中满足ei,j≤D元素的个数,根据阈值T判断这些块是否为平滑块,从而找出最大的平滑块;
3)计算图像最大的正方形平滑块:对整个差值图像E,采用对角线遍历的方法来查找平滑块,首先从图像的主对角线开始遍历,然后遍历图像右上部分的对角线,最后遍历图像左下部分的对角线,包括:
3‑1)计算正方形块的最大边长:设左上角坐标为(x,y)的最大正方形块的边长为r,则:r=min(m‑x+1,m‑y+1),其中min为取最小值操作,如果r×r的最大正方形为平滑块,设不满足ei,j≤D的元素的最大值为s,则有:
2
s=r×(1‑T),
2
对当前块E(x,y,t),如果t‑d(x,y,t)>s,则从E(x,y,t)到E(x,y,r)均不可能是平滑块;
3‑2)计算正方形块的最大平滑块:计算主对角线上的最大平滑块,令lM=0,从E(1,1,1)开始计算:
计算E(x,x,k)中满足条件的元素个数d(x,x,k),其中k的取值为1到r,若当前为最大平2
滑块,令xM=x,yM=x,lM=k,w=d(x,x,lM)对该块进行记录;若k ‑d(x,x,k)>s则计算E(x+
1,x+1,k);
计算E(x+1,x+1,k)时,若lM>0,根据w的值直接计算d(x+1,x+1,lM+1)的值,因此k的取值为lM+1到r;否则k的取值为1到r,若当前块为最大平滑块则对该块进行记录,令xM=x,yM=2
x,lM=k并更新w的值;若k‑d(x,x,k)>s则计算E(x+2,x+2,k),采用上面方法计算出左上角坐标在主对角线上的最大平滑块;
计算左上角坐标在右上部分的对角线和左下部分的对角线上时,对于每条线上的第1个元素x=1或y=1,k的取值为1到r,若lM>0,w=d(x,y,lM),后面的点k的取值为lM+1到r;计算过程与主对角线上的方式相同,在计算过程中记录当前最大的平滑块,从而得到整幅图像的最大平滑块。