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

基于柏林噪声的静态云雾仿真生成方法

2022-08-10 16:41:51 来源:中国专利 TAG:


1.本发明属于遥感影像处理技术领域,涉及一种静态云雾仿真生成的方法,尤其涉及一种基于柏林噪声基本原理的静态云雾仿真生成方法。


背景技术:

2.遥感影像的云雾仿真生成技术广泛应用于重要目标遮蔽、大气反演等领域。主要可分为基于物理模拟生成云雾的方法和基于随机噪声仿真云雾的方法。虽然基于云雾生成规律的物理模型仿真出来的云雾更加真实,但是由于所涉及到的方法有很强的专业性,并且对于参数的选择有严格的限制,所以对于仅仅使用云雾仿真来达到遮蔽目标用途的任务就十分繁杂,增加了云雾仿真的成本。基于随机噪声生成云雾的方法能够通过利用一些随机函数生成形状、薄厚不一的云雾,且操作简单,更加适应于仅需要云雾视觉效果的任务。
3.目前一些基于随机噪声仿真云雾的方法,往往只是通过利用高斯核来模拟生成云雾掩膜,将掩膜的数值设置为影响的透明度来得到类似云雾的效果,这样的方法生成的云雾形状、薄厚程度都较为单一,与真实云雾相差甚远。


技术实现要素:

4.真实的云雾由于其特殊的物理光学特性,在影像中会因为其薄厚程度以及形状大小而表现出不同的形态,仅仅利用高斯噪声来模拟无法很好的仿真出云雾的这些特性。为了解决上述问题,本发明提出了一种基于柏林噪声的云雾生成方法,通过利用柏林噪声的基本原理来模拟仿真云雾在影像中的真实状态,该处理方法能够通过利用随机生成的噪点来仿真出云雾的形状以及薄厚程度,从而生成与真实情况相近的云雾效果,方法简单,可操作性强,有很好的扩展性。
5.本发明所采用的技术方案是一种基于柏林噪声的静态云雾仿真生成方法,包括以下步骤:
6.步骤1,输入影像,得到影像的长宽大小;
7.步骤2,将取值区间[0,1)分别以影像的长宽均分,并将均分后的点以(横坐标,纵坐标)的形式分布在与影像大小相等的平面上,保证每个点都有唯一的一个单元格将其包围,将这些点的值乘以频率,并用得到的积减去不大于积的整数的差作为新的该点的值;
[0008]
步骤3,建立一个索引表,作为后续哈希搜索的索引表,索引表的值为预设范围内的整数且顺序随机;
[0009]
步骤4,使用缓和函数将步骤2生成的数进行平滑处理,得到缓和后的频率变化值;
[0010]
步骤5,对步骤2中每一个点利用包围其的单元格的四个点的坐标从索引表中搜索该点对被包围点的梯度影响方向,利用这个梯度影响方向求出该点对被包围点的梯度影像值,遍历所有的点;
[0011]
步骤6,利用线性插值函数将整幅图内的影响值补齐并乘以振幅,生成一幅柏林噪声随机图;
[0012]
步骤7,改变频率与振幅,返回步骤2迭代,直到满足迭代结束条件时进入步骤8;
[0013]
步骤8,将不同频率与振幅生成的柏林噪声图叠加起来,生成云雾掩膜,并将云雾掩膜作为透明度图直接叠加到图像上,完成静态云的仿真模拟。
[0014]
而且,步骤3中建立一个长度为512的索引表,作为后续哈希搜索的索引表,索引表的值为0-255的整数且顺序随机。
[0015]
而且,步骤4中的缓和函数fade(t)为任意的线性函数,包括但不限于线性插值或余弦插值。
[0016]
而且,步骤5中的梯度方向为任意方向,对于每一个点的伪随机梯度由x,y生成伪随机梯度影像值:
[0017]
grad=vetcor[p[x;y]%4][0]*x vetcor[p[x;y]%4][1]*y
[0018]
其中p[x;y]是哈希索引表,其值与x和y有关;对于所有的点,都通过利用这个伪随机梯度影响计算函数来计算其影响值,
[0019]
n00=gradient(p[p[xi] yi],xf,yf)
[0020]
n01=gradient(p[p[xi] yi 1],xf,yf-1)
[0021]
n11=gradient(p[p[xi 1] yi 1],xf-1,yf-1)
[0022]
n10=gradient(p[p[xi 1] yi],xf-1,yf)
[0023]
其中n00,n01,n11,n10为上下左右四个方向梯度的影响值,gradient()表示梯度求解函数,p[x;y]是哈希索引表,其值与x和y有关。
[0024]
本发明针对云雾的形状特点,提出了一种基于柏林噪声的静态云生成方法,即使用噪声生成函数与线性插值函数来仿真模拟云雾的形态,从而在给定影像上仿真出真实感更强的静态云雾。该方法采用柏林噪声的基本原理,首先通过构造随机噪声函数生成数值介于0-1之间的与图像大小相同的间隔固定的数点,对于每一个数点都有一个唯一的单元格将其包裹,然后利用生成的伪随机梯度值计算单元格顶点对于该随机数点的影响值,其次利用插值函数将生成的不同频率与幅度的噪音叠加起来生成云的掩膜,最后将生成的云掩膜与输入图像进行叠加得到仿真的带有云雾的图像。结果表明,本发明提出的基于柏林噪声的静态云生成方法,克服了传统基于高斯核方法在模拟云生成时产生的云雾薄厚程度、形状大小单一的问题,更好的模拟出了自然状态下云雾的形态特征,处理方法清晰,可操作性强。
附图说明
[0025]
图1为本发明实施例的流程图。
[0026]
图2为本发明实施例的缓和函数图。
[0027]
图3为本发明实施例的不同频率与振幅下的一维柏林噪声图。
[0028]
图4为本发明实施例的不同频率噪声叠加结果图。
具体实施方式
[0029]
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
[0030]
本发明所提供的一种基于柏林噪声的静态云生成方法时采用随机噪声模拟,通过利用噪声生成函数与哈希索引,计算整幅图像内每一个单元格对其包围点的影响值,再利用插值函数对整幅图像的影响值进行插值补全,最后将不同频率与振幅下生成的噪声图进行叠加得到云雾的仿真掩膜。
[0031]
具体实施时,可采用计算机软件技术实现自动流程运行,以下结合附图和实施例详细说明本发明技术方案。
[0032]
如图1所示,实施例提供的一种基于柏林噪声的静态云雾仿真生成方法具体包括以下步骤:
[0033]
步骤1,输入影像,得到影像的长宽大小(横向和纵向像素个数),以方便生成与影像大小一致的均值点图;
[0034]
步骤2,将取值区间[0,1)分别以影像的长宽均分,并将均分后的点以(横坐标,纵坐标)的形式分布在与影像大小相等的平面上,即按坐标值进行分布,保证每个点都有唯一的一个单元格将其包围,将这些点的值乘以频率,并用得到的积减去不大于积的整数的差作为新的该点的值,具体流程为:
[0035]
假设影像的大小为h
×
w,频率为f,通过将[0,1)分别均分为h和w等份,例如在[0,1)取0.9时,横坐标x=0.9/w,纵坐标y=0.9/h,具体实施时也可以取区间内其他值。
[0036]
实施例生成的均值图m为:
[0037][0038]
根据生成的均值图,将横纵坐标x,y重新赋值为:
[0039][0040]
将这些均值图上点的值乘以频率f,得到该点的频率权重(xi,yi):
[0041][0042]
均值图上点的值也就是对应的坐标,比如图像最上面的点为(0,0),下面的点为(0.9\h,0)。乘以频率f得到该点的频率权重(xi,yi)后,用得到的积减去不大于积的整数的差作为新的该点的值(xf,yf):
[0043]
xf=xi-int(xi)yf=yi-int(yi)
[0044]
int()表示取整操作。通过以上操作,可以保障每个点都有唯一的一个单元格将其包围,而这个网格上的点则可以用于生成每个小像素点的伪梯度。
[0045]
步骤3,建立一个用于后续哈希搜索的索引表:
[0046]
其中索引表的长度和取值上限可以预先设置为正整数,其目的在于生成伪随机的
梯度影响值,值越大生成的那个随机的列表就越无序,生成的云的效果就越逼真,但是计算量就会变大。
[0047]
实施例中采用的优选方案为建立一个长度为512的索引表,作为后续哈希搜索的索引表,索引表的值为0-255的整数且顺序随机,实施例中将索引表表示为p=random[i for i in range(255)],即p为0-255中的随机数产生的列表,i为值域为[0,255]的赋值变量,方便下面生成伪随机的梯度方向;
[0048]
步骤4,使用缓和函数将步骤2生成的数进行平滑处理,得到缓和后的频率变化值u,v;
[0049]
步骤4中的缓和函数fade(t)可以为任意的线性函数,t为未知数,包括但不限于线性插值、余弦插值等。
[0050]
实施例使用缓和函数对步骤2中得到的xf,yf进行平缓处理,其中缓和函数为fade(t)=6t
5-15t4 10t3,该函数的函数示意图如图2所示,其中横坐标为未知量t,纵坐标为fade(t)的值,这样插值变化不再是单调的线性变化,而是这样一个过程:初始变化慢,中间变化快,结尾变化又慢下来(也就是在当数值趋近于整数时,变化变慢),得到缓和后的频率变化值u,v:u=fade(xf),v=fade(yf);
[0051]
步骤5,对步骤2中每一个点利用包围其的单元格的四个点的坐标从索引表中搜索该点对被包围点的梯度影响方向,利用这个梯度影响方向求出该点对被包围点的梯度影像值,遍历所有的点;
[0052]
步骤5中的梯度方向可以为任意方向,对于每一个点的伪随机梯度由x,y生成伪随机梯度影像值。
[0053]
实施例中,对步骤2中m的每一个点都有一个单元格可以将这个点包围,一个单元格包含四个点,接着,实施例给4个顶点(在3维空间则是8个顶点)各自生成一个伪随机的梯度向量,梯度向量代表该顶点相对单元正方形内某点的影响是正向还是反向的(向量指向方向为正向,相反方向为反向)。而伪随机是指,对于任意组相同的输入,必定得到相同的输出。因此,虽然每个顶点生成的梯度向量看似随机,实际上并不是。这也保证了在梯度向量在生成函数不变的情况下,每个坐标的梯度向量都是确定不变的。
[0054]
梯度向量通过利用哈希索引表来确定梯度方向,其中梯度方向包含上下左右四个方向,将梯度的上下左右四个方向采用矩阵表示为:vector=[[0,1],[0,-1],[1,0],[-1,0]],利用伪随机梯度函数:
[0055]
gradient(p[e],c,d)=vetcor[p[e]%4][0]
×
c vetcor[p[e]%4][1]
×
d,该式中p[e]表示索引表中的第e个值,e的值根据下面具体情况取,c,d均为未知数,具体值根据下面具体情况取。利用伪随机梯度函数计算所有点的影响值,
[0056]
n00=gradient(p[p[xi] yi],xf,yf)
[0057]
n01=gradient(p[p[xi] yi 1],xf,yf-1)
[0058]
n11=gradient(p[p[xi 1] yi 1],xf-1,yf-1)
[0059]
n10=gradient(p[p[xi 1] yi],xf-1,yf)
[0060]
其中n00,no1,n11,n10为上下左右四个方向梯度的影响值,gradient()表示梯度求解函数。上式中的xi、yi根据步骤2中得到的频率权重(xi,yi)取值,上式中的xi、yi根据步骤2中计算得到的(xf,yf)取值。
[0061]
步骤6,利用线性插值函数lerp(a,b,x)=a x
×
(b-a)将整幅图内的影响值补齐并乘以振幅a,生成一幅柏林噪声随机图:
[0062]
m1=a
×
lerp(lerp(n00,n10,u),lerp(n01,n11,u),v)
[0063]
步骤7,改变频率f和振幅a,返回至步骤2,重复迭代步骤2-步骤7直到预设的迭代次数,再进入步骤8;预先可设置每次迭代时改变频率f和振幅a的具体方式,例如令f=2f,a=a/2;
[0064]
步骤8,将所生成的不同频率与振幅的柏林噪声图进行线性叠加,生成最终的仿真云掩膜,假设输入为input,生成的云掩膜为mask,cloud是与图像大小相同的全白图,则最终的仿真图像为:
[0065]
i=cloud
×
mask (1-mask)
×
input
[0066]
将生成的仿真云掩膜叠加到目标影像上,完成静态云的仿真模拟。
[0067]
以上流程采用柏林噪声的基本原理,首先通过构造随机噪声函数生成数值介于0-1之间的与图像大小相同的间隔固定的随机数点,对于每一个随机数点都有一个唯一的单元格将其包裹,然后利用生成的伪随机梯度值以及每个单元格顶点与随机数点之间的欧式距离计算单元格顶点对于该随机数点的影响值,其次利用插值函数将生成的不同频率与幅度的噪音叠加起来生成云的掩膜,最后将生成的云掩膜与输入图像进行叠加得到仿真的带有云雾的图像。
[0068]
图3为不同频率与振幅下的一维柏林噪声,其中amplitude为振幅,frequency为频率,横坐标为未知数,纵坐标为生成的柏林噪声,图4为不同频率噪声叠加到一起后的结果,sum of noise function=(perlin noise)表示将图3中的所有的柏林噪声值相加的结果,横坐标为未知数,纵坐标为相加后的柏林噪声,可以看到,当把几组噪声叠加到一起时所产生的噪声更加符合自然规律,同理在二维情况下,叠加生成的掩膜也更加符合云雾的特性。
[0069]
从实施例方法应用最终所得的效果图可以看出,本发明模拟出来的云雾与真实的云雾较为相似,具有与真实云雾较类似的薄厚程度以及形状特点,具有较好的视觉效果。
[0070]
具体实施时,本发明技术方案提出的方法可由本领域技术人员采用计算机软件技术实现自动运行流程,实现方法的系统装置例如存储本发明技术方案相应计算机程序的计算机可读存储介质以及包括运行相应计算机程序的计算机设备,也应当在本发明的保护范围内。
[0071]
在一些可能的实施例中,提供一种基于柏林噪声的静态云雾仿真生成系统,包括处理器和存储器,存储器用于存储程序指令,处理器用于调用存储器中的存储指令执行如上所述的一种基于柏林噪声的静态云雾仿真生成方法。
[0072]
在一些可能的实施例中,提供一种基于柏林噪声的静态云雾仿真生成系统,包括可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序执行时,实现如上所述的一种基于柏林噪声的静态云雾仿真生成方法。
[0073]
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
[0074]
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献