一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种最大的正方形图像平滑块计算方法与流程

2022-03-19 21:16:36 来源:中国专利 TAG:


1.本发明涉及图像处理领域,具体是一种最大的正方形图像平滑块的计算方法。


背景技术:

2.随着计算机网络技术、人工智能和大数据等新技术的迅速发展,数字图像处理技术也得到了一定的发展。数字图像处理是指借助数字计算机来处理数字图像。数字图像处理广泛应用于图像引导、无人机、无人巡逻车、人脸识别、指纹识别、语音识别、车牌识别、汉字识别和医学图像识别等高科技领域。数字图像处理主要有图像数字化、滤波、编码、压缩、增强与复原、分割、检测技术、图像识别技术等。在图像分割和图像目标特征提取等过程中都会遇到求图像中特征矩形块的问题。
3.现在的图像分块技术大多都是把图像分成大小相等的不重叠的小矩形块,这样的好处是简便操作、便于统一进行任务处理,但是这样统一的操作往往忽略了图像的局部特征,而整幅图像的纹理复杂度也不是平均的,这就需要我们找出那些具有特定特征的图像块单独处理。因此,如何找出一幅图像中具有某些特征的图像块成为亟需解决的问题。


技术实现要素:

4.本发明的目的是针对现有技术的不足,而提供一种最大的正方形图像平滑块的计算方法。本这种方法能够快速的计算出图像最大正方形平滑块。
5.实现本发明目的的技术方案是:
6.一种最大的正方形图像平滑块的计算方法,包括如下步骤:
7.1)定义正方形图像平滑块:假设i为8位灰度图像、m
×
m为图像大小,p
i,j
为i中坐标为(i,j)的像素值,其中,p
i,j
∈[0,255],1≤i≤m,1≤j≤m,m为自然数,按“s”形状扫描顺序遍历图像,得到像素队列,从队列尾开始计算相邻像素的差值,设差值的绝对值为e
i,j
,则e
i,j
∈[0,255],由此可得差值图像e,对图像平滑区域,差值都比较小,若为纹理块则差值较大,设e(x,y,k)为e中大小为k
×
k一个正方形块、(x,y)为左上角坐标、e
i,j
为块e(x,y,k)中的元素,令e(x,y,k)中满足e
i,j
≤d的元素个数为d(x,y,k),其中d为阈值,定义:若则此图像块为平滑块,否则为非平滑块,其中t为阈值、且0≤t≤1,t为图像块e(x,y,k)中满足e
i,j
≤d的像素所占的比例,计算平滑块时,阈值d取值越小,图像块越平滑,一般结合位平面进行取值,如1、3和7等;
[0008]
2)计算图像正方形块中满足条件的像素个数:由于差值图像e较好地反映了原始图像平滑纹理区域分布,本技术方案采用差值图像确定原始图像平滑块,为了快速计算左上角位置为(x,y)的最大平滑块,减少运算量,按行和列分别统计图像中满足条件e
i,j
≤d元素的个数,设h和v是大小为m
×
m的两个矩阵,h和v元素分别h
i,j
为和v
i,j
,其中h
i,j
表示第i行第1个元素到第j个元素之间满足条件e
i,j
≤d的元素个数,v
i,j
表示第j列第1个元素到第i个元素之间满足条件e
i,j
≤d的元素个数,令:
[0009][0010]fi,j
为e
i,j
对应的标记,若e
i,j
≤d,f
i,j
=1,否则,f
i,j
=0,根据f
i,j
计算h
i,j
和v
i,j
则有:
[0011][0012]
从上可得:
[0013]
这里k为变量,因此可快速计算h
i,j
的值并得到h,对v
i,j
,令:
[0014][0015]
同理可快速计算v
i,j
的值并得到v,得到h
i,j
和v
i,j
的值后可快速计算同一行或同一列中任意两个像素之间满足条件e
i,j
≤d的像素个数,设当前像素的位置为(i,j),sh(i,a,b)为第i行第a个元素与第b个元素之间满足条件e
i,j
≤d的像素个数,其中a<b,则有:
[0016][0017]
其中,若a-1=0,则h
i,a-1
=0,
[0018]
设sv(j,a,b)为第j列第a个元素与第b个元素之间满足条件e
i,j
≤d的像素个数,则有:
[0019][0020]
其中,若a-1=0,则v
a-1,j
=0,
[0021]
得到同一行或同一列中任意两个像素之间满足条件e
i,j
≤d的像素个数sh(i,a,b)或sv(j,a,b)后,再结合e(x,y,k)中满足条件e
i,j
≤d的元素个数d(x,y,k),以递增的方式可快速计算以(x,y)为左上角坐标任意大小正方形块中满足条件e
i,j
≤d的像素个数,对于左上角坐标为(x,y)边长为k 1的块e(x,y,k 1),则有:
[0022]
d(x,y,k 1)=d(x,y,k) sh(x k,x,x k) sv(y k,y,y k-1),
[0023]
这样计算左上角坐标为(x,y)边长为k 1的块e(x,y,k 1)中满足条件的元素个数d(x,y,k 1),根据这个递推关系从边长为1开始,计算出左上角顶点为(x,y)所有边长的正方形中满足条件的元素个数:
[0024]
设当前最大平滑块的左上角坐标为(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 l
m-1) sv(y 1,y 1,y l
m-1)-sh(x,x,x l
m-1)-sv(y,y,y l
m-1),
[0025]
若lm》0,同理通过d(x n,y n,k)计算d(x n 1,y n 1,k)的值,这样计算块中满足e
i,j
≤d元素的个数,根据阈值t判断这些块是否为平滑块,从而找出最大的平滑块;
[0026]
3)计算图像最大的正方形平滑块:对整个差值图像e,采用对角线遍历的方法来查找平滑块,首先从图像的主对角线开始遍历,然后遍历图像右上部分的对角线,最后遍历图像左下部分的对角线,包括:
[0027]
3-1)计算正方形块的最大边长:设左上角坐标为(x,y)的最大正方形块的边长为r,则:
[0028]
r=min(m-x 1,m-y 1),
[0029]
其中min为取最小值操作,如果r
×
r的最大正方形为平滑块,设不满足e
i,j
≤d的元素的最大值为s,则有:
[0030]
s=r2×
(1-t),
[0031]
对当前块e(x,y,t),如果t
2-d(x,y,t)>s,则从e(x,y,t)到e(x,y,r)均不可能是平滑块,采用上面的方式可以快速排除较大的纹理块,提高计算速度;
[0032]
3-2)计算正方形块的最大平滑块:计算主对角线上的最大平滑块,令lm=0,从e(1,1,1)开始计算:
[0033]
计算e(x,x,k)中满足条件的元素个数d(x,x,k),其中k的取值为1到r,若当前为最大平滑块,令xm=x,ym=x,lm=k,w=d(x,x,lm)对该块进行记录;若k
2-d(x,x,k)>s则计算e(x 1,x 1,k);
[0034]
计算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=x,lm=k并更新w的值;若k
2-d(x,x,k)>s则计算e(x 2,x 2,k),采用上面方法可计算出左上角坐标在主对角线上的最大平滑块;
[0035]
计算左上角坐标在右上部分的对角线和左下部分的对角线上时,对于每条线上的第1个元素x=1或y=1,k的取值为1到r,若lm》0,w=d(x,y,lm),后面的点k的取值为lm 1到r;计算过程与主对角线上的方式相同,在计算过程中记录当前最大的平滑块,从而得到整幅图像的最大平滑块。
[0036]
本技术方案首先根据差值图像定义了正方形图像平滑块,然后确定正方形图像平滑块的快速计算方法,最后通过对角线遍历差值图像,得到图像中最大的正方形图像平滑块。
[0037]
这种方法本发明能够快速的计算出图像最大正方形平滑块。
附图说明
[0038]
图1为实施例中的原始图像示意图;
[0039]
图2为实施例中呈“s”形状的扫描顺序示意图;
[0040]
图3为实施例中的差值图像示意图;
[0041]
图4为实施例中的h矩阵示意图;
[0042]
图5为实施例中的v矩阵示意图;
[0043]
图6为实施例中的扩大边长示例示意图;
[0044]
图7为实施例中的(x,y)到(x 1,y 1)示意图;
[0045]
图8为实施例中的t=0.8,d=1时最大的正方形平滑块示意图。
具体实施方式
[0046]
下面结合附图和实施例对本发明的内容作进一步的阐述,但不是对本发明的限定。
[0047]
实施例:
[0048]
一种最大的正方形图像平滑块的计算方法,包括如下步骤:
[0049]
1)定义正方形图像平滑块:如图1所示,假设i为8位灰度图像、m
×
m为图像大小,p
i,j
为i中坐标为(i,j)的像素值,其中,p
i,j
∈[0,255],1≤i≤m,1≤j≤m,m为自然数,按“s”形状扫描顺序遍历图像,如图2所示,得到像素队列,从队列尾开始计算相邻像素的差值,设差值的绝对值为e
i,j
,则e
i,j
∈[0,255],由此可得差值图像e,如图3所示,对图像平滑区域,差值都比较小,若为纹理块则差值较大,设e(x,y,k)为e中大小为k
×
k一个正方形块、(x,y)为左上角坐标、e
i,j
为块e(x,y,k)中的元素,令e(x,y,k)中满足e
i,j
≤d的元素个数为d(x,y,k),其中d为阈值,定义:若则此图像块为平滑块,否则为非平滑块,其中t为阈值、且0≤t≤1,t为图像块e(x,y,k)中满足e
i,j
≤d的像素所占的比例,计算平滑块时,阈值d取值越小,图像块越平滑,一般结合位平面进行取值,如1、3和7等,本例中t=0.8,d=1;
[0050]
2)计算图像正方形块中满足条件的像素个数:由于差值图像e较好地反映了原始图像平滑纹理区域分布,本技术方案采用差值图像确定原始图像平滑块,为了快速计算左上角位置为(x,y)的最大平滑块,减少运算量,按行和列分别统计图像中满足条件e
i,j
≤d元素的个数,设h和v是大小为m
×
m的两个矩阵,h和v元素分别h
i,j
为和v
i,j
,其中h
i,j
表示第i行第1个元素到第j个元素之间满足条件e
i,j
≤d的元素个数,v
i,j
表示第j列第1个元素到第i个元素之间满足条件e
i,j
≤d的元素个数,令:
[0051][0052]fi,j
为e
i,j
对应的标记,若e
i,j
≤d,f
i,j
=1,否则,f
i,j
=0,根据f
i,j
计算h
i,j
和v
i,j
则有:
[0053][0054]
从上可得:
[0055]
这里k为变量,因此可快速计算h
i,j
的值并得到h,如图4所示,
[0056]
对v
i,j
,令:
[0057][0058]
同理可快速计算v
i,j
的值并得到v,如图5所示,得到h
i,j
和v
i,j
的值后可快速计算同一行或同一列中任意两个像素之间满足条件e
i,j
≤d的像素个数,设当前像素的位置为(i,j),sh(i,a,b)为第i行第a个元素与第b个元素之间满足条件e
i,j
≤d的像素个数,其中a<b,则有:
[0059][0060]
其中,若a-1=0,则h
i,a-1
=0,
[0061]
设sv(j,a,b)为第j列第a个元素与第b个元素之间满足条件e
i,j
≤d的像素个数,则有:
[0062][0063]
其中,若a-1=0,则v
a-1,j
=0,
[0064]
得到同一行或同一列中任意两个像素之间满足条件e
i,j
≤d的像素个数sh(i,a,b)或sv(j,a,b)后,再结合e(x,y,k)中满足条件e
i,j
≤d的元素个数d(x,y,k),以递增的方式可快速计算以(x,y)为左上角坐标任意大小正方形块中满足条件e
i,j
≤d的像素个数,对于左上角坐标为(x,y)边长为k 1的块e(x,y,k 1),则有:
[0065]
d(x,y,k 1)=d(x,y,k) sh(x k,x,x k) sv(y k,y,y k-1),
[0066]
这样可快速计算左上角坐标为(x,y)边长为k 1的块e(x,y,k 1)中满足条件的元素个数d(x,y,k 1),如图6所示,根据这个递推关系可从边长为1开始,快速计算出左上角顶点为(x,y)所有边长的正方形中满足条件的元素个数:
[0067]
如图7所示,设当前最大平滑块的左上角坐标为(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)计算即可,从上可知:
[0068]
d(x 1,y 1,lm)=w sh(x 1,x 1,x l
m-1) sv(y 1,y 1,y l
m-1)-sh(x,x,x l
m-1)-sv(y,y,y l
m-1),若lm》0,同理通过d(x n,y n,k)可快速计算d(x n 1,y n 1,k)的值,这样可快速计算块中满足e
i,j
≤d元素的个数,根据阈值t判断这些块是否为平滑块,从而找出最大的平滑块;
[0069]
3)计算图像最大的正方形平滑块:对整个差值图像e,采用对角线遍历的方法来查找平滑块,首先从图像的主对角线开始遍历,然后遍历图像右上部分的对角线,最后遍历图像左下部分的对角线,包括:
[0070]
3-1)计算正方形块的最大边长:设左上角坐标为(x,y)的最大正方形块的边长为r,则:
[0071]
r=min(m-x 1,m-y 1),
[0072]
其中min为取最小值操作,如果r
×
r的最大正方形为平滑块,设不满足e
i,j
≤d的元素的最大值为s,则有:
[0073]
s=r2×
(1-t),
[0074]
对当前块e(x,y,t),如果t
2-d(x,y,t)>s,则从e(x,y,t)到e(x,y,r)均不可能是平滑块,采用上面的方式可以快速排除较大的纹理块,提高计算速度;
[0075]
3-2)计算正方形块的最大平滑块:计算主对角线上的最大平滑块,令lm=0,从e(1,1,1)开始计算:
[0076]
计算e(x,x,k)中满足条件的元素个数d(x,x,k),其中k的取值为1到r,若当前为最大平滑块,令xm=x,ym=x,lm=k,w=d(x,x,lm)对该块进行记录;若k
2-d(x,x,k)>s则计算e(x 1,x 1,k);
[0077]
计算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=x,lm=k并更新w的值;若k
2-d(x,x,k)>s则计算e(x 2,x 2,k),采用上面方法可计算出左上角坐标在主对角线上的最大平滑块;
[0078]
如图8所示,计算左上角坐标在右上部分的对角线和左下部分的对角线上时,对于
每条线上的第1个元素x=1或y=1,k的取值为1到r,若lm》0,w=d(x,y,lm),后面的点k的取值为lm 1到r;计算过程与主对角线上的方式相同,在计算过程中记录当前最大的平滑块,从而得到整幅图像的最大平滑块,本例方法的时间复杂度为o(m3),说明本例方法是一种高效的最大正方形平滑块计算方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献