一种图像噪声添加方法
技术领域
本发明属于高质量高效率视频以及图像的特效处理及合成软件技术领域,具体涉及一种图像噪声添加方法。
背景技术
在图像/视频处理软件中,常常需要对清晰的数字图像进行艺术化特效处理,如实现老电影效果的颗粒噪声、划痕及斑块的添加。另外,在电视电影后期合成中,需要将摄像机在现实世界中采集的素材与由计算机特效生成的部分合成,而前者普遍存在着噪声,因此需要在计算机生成的素材中也添加同种特性的噪声,以满足观众对于画面颗粒感的感官一致性。
在现有的噪声添加方法中,大多数方法只能添加特定类型的噪声,很少能够实现多种类型的噪声添加。另外描述噪声特性的多种参数如大小、灰度、色度、朝向和RGB通道相关度等因素也很少被统一考虑处理。针对这种情况,我们提出了一种基于多参数的曲线可调的图像彩色噪声添加方法,可以根据需求生成噪声并添加到图像上。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种图像噪声添加方法,实现根据需要生成各种类型的噪声并将噪声添加到图像中。
为解决上述技术问题,本发明采用的技术方案如下:
一种图像噪声添加方法,包括以下步骤:
(1)根据更新噪声参数Newnoise生成RGB三个通道各自对应的随机白噪 声图像;
(2)根据RGB通道相关度系数,对生成的随机白噪声图像进行相关度约束处理,增强RGB三个通道的相关性;
(3)根据RGB三个通道噪声大小和噪声增益分别随灰度变化曲线Curvesize和CurveGain,对每个通道逐点进行噪声大小参数和增益参数的计算,得到通道中每一个像素点增益调整后的输出噪声灰度;
(4)针对每个通道,将所述增益调整后的输出噪声灰度与该点对应的原始像素值叠加,获得添加噪声后的像素值。
进一步,如上所述的图像噪声添加方法,步骤(1)中所述白噪声的生成是通过计算机产生伪随机序列来实现的,伪随机序列的具体内容是受初始种子控制的,用户通过所述更新噪声参数Newnoise改变伪随机序列的初始种子来控制所生成的白噪声图像的噪声内容。
进一步,如上所述的图像噪声添加方法,步骤(1)中所述白噪声图像的生成适用的原始图像位深度是8bit和16bit。
进一步,如上所述的图像噪声添加方法,步骤(2)中对生成的三幅白噪声图像进行相关度约束处理的具体方式如下:
上式中,
表示RGB通道中任一点的白噪声值,
表示相关性处理后的对应点的RGB通道的像素值,C
RG表示RGB通道的红绿相关度,C
RB表示RGB通道的红蓝相关度,C
GB表示RGB通道的绿蓝相关度。
进一步,如上所述的图像噪声添加方法,步骤(3)中根据RGB三个通道噪声大小随灰度变化曲线Curvesize,逐点进行噪声大小参数计算的具体方式为:
首先,根据通道通道噪声大小随灰度变化曲线Curvesize和噪声大小幅值Grainsize计算每一个像素点的默认噪声大小Size:
Size=Grainsize×CurveSize,
然后,根据RGB通道的横纵比RatioXY计算实际水平噪声大小Sizehor和垂直噪声大小Sizever,具体公式为:
再对所划定的区域内的白噪声进行高斯滤波,具体方式如下:
根据噪声水平方向和垂直方向的大小生成边长分别为2·Sizehor+1和2×Sizever+1的归一化的系数矩阵Gkernel,公式为:
上式中,结果r'表示满足指定噪声大小条件约束的噪声灰度,noise(i,j)表示通道内当前待处理像素(x,y)的滤波器邻域中任一点(i,j)的噪声像素,Gkernel(i-x,j-y)表示该邻域点(i,j)的归一化的系数。
进一步,如上所述的图像噪声添加方法,步骤(3)中根据RGB三个通道噪声增益随灰度变化曲线CurveGain,逐点进行噪声增益参数计算的具体方式为:首先,根据通道通道噪声增益随灰度变化曲线CurveGain和噪声大小幅值Graingain计算像素点的默认增益Gain:
Gain=Graingain×CurveGain,
然后,根据RGB通道的横纵比RatioXY计算实际水平增益Gainhor和垂直增益Gainver,具体公式为:
再进一步,步骤(3)中得到通道中每一个像素点增益调整后的输出噪声灰度的具体方式为:
[0030] r″=r'×(1+2×Gainver)×(1+2×Gainhor)
[0031] 上式中,r″表示增益调增后的输出噪声灰度,r′表示满足指定噪声大小条件约束的噪声灰度。
更进一步,如上所述的图像噪声添加方法,步骤(4)中所述获得添加噪声后的像素值的具体方式如下:
result(x,y)=origi(x,y)+r″
上式中,result(x,y)表示通道中添加噪声后的任一点(x,y)的像素值,origi(x,y)表示通道中原始图像中对应位置点的原始像素值。
本发明的效果在于:通过本发明所述的方法,用户可以通过输入各种噪声相应的参数,并根据RGB通道内噪声大小和增益随灰度变化的曲线对图像添加高斯(Gaussian)、瑞利(Rayleigh)、莱斯(Rician)、伽马(Gamma)及椒盐(Impulse)等各种类型的噪声。此外,该方法还能够用于其它各种图像处理方法的对与噪声干扰的鲁棒性测试中。
附图说明
图1为本发明一种图像噪声添加方法的流程图;
图2-图7为应用本发明所述方法添加噪声的效果图。
具体实施方式
下面结合具体实施方式和附图对本发明进行详细描述。
在采用本发明所述的方法进行图像噪声的添加时,首先需要用户输入RGB三通道的噪声大小幅值Grainsize
Red、Grainsize
Green和Grainsize
Blue,噪声增益幅值Graingain
Red、Graingain
Green和Graingain
Blue,RGB相关度系数(红绿相关度C
RG、红蓝相关度C
RB和绿蓝相关度C
GB),横纵比Ratio
XY,更新噪声参数Newnoise以及RGB 三通道内噪声大小和增益随灰度变化曲线
和
这些参数即表明了用户对所需添加的噪声的要求,也是实现本发明的前提。而上述中所有参数仅是人机界面接口的公式化表示,实际上反映了用户根据实际情况所确定的噪声添加的需求,对于本领域的技术人员来说是能够直接确定的。
如图1所示,为本发明一种图像噪声添加方法的流程图,该方法包括以下步骤:
步骤S11:根据更新噪声参数Newnoise生成RGB三个通道各自对应的白噪声图像。
白噪声的生成是通过计算机产生伪随机序列来实现的,而伪随机序列的具体内容是受初始种子控制的,用户通过选定的更新噪声参数Newnoise改变伪随机序列的初始种子来实现对于所生成的噪声内容的控制。上述生成白噪声的方法,所适用的原始图像位深度是8bit和16bit,由于图像位深度不同的两种的图像灰度范围大小不一,因此在白噪声生成的过程中,伪随机序列的范围也需要调整,该调整可以通过调整其中的相关参数来实现合适噪声的生成。而通过参数Newnoise改变伪随机序列生成白噪声是为本领域的公知技术,伪随机序列生成依赖于种子,即如果种子发生变化,则每次生成的序列也变化;如果种子不变,则每次生成的序列也不变。在用随机序列表示白噪声的应用中,通过人为控制改变或保持随机序列的种子,可以获得不同的或同样的白噪声图像。
步骤S12:根据RGB相关度系数,进行白噪声图像的相关度约束处理。
根据RGB相关度系数,对生成的三幅随机白噪声图像进行相关度约束处理,增强RGB三个通道的相关性。其具体方式如下:
上式中,
表示RGB通道中任一点的白噪声值,
表示相关性处理后的对应点的RGB通道的像素值,C
RG表示RGB通道的红绿相关度,C
RB表示RGB通道的红蓝相关度,C
GB表示RGB通道的绿蓝相关度。
步骤S13:进行噪声大小参数和增益参数的计算,得到像素点增益调整后的输出噪声灰度。
根据RGB三个通道噪声大小随灰度变化曲线Curvesize和噪声增益随灰度变化曲线CurveGain,逐点进行噪声大小参数和增益参数的计算,得到每一个像素点增益调整后的输出噪声灰度。下面以R通道为例进行说明其具体方式,其它通道采用相同的处理流程。
设R通道的白噪声图像用noiseRed表示,原始图像用origiRed表示,添加噪声结果图像用resultRed表示。设通道中当前点为(x,y),对应的原始像素值为origiRed(x,y),简记为r。
首先根据红色通道噪声大小随灰度变化曲线
和噪声大小幅值Grainsize
Red计算出当前点的默认噪声大小
随后根据通道的横纵比Ratio
XY获得实际水平噪声大小
和垂直噪声大小
计算方法为:
随后,利用获得的获得实际水平噪声大小
和垂直噪声大小
对所划定的区域内白噪声进行Gaussian滤波。首先根据噪声水平和垂直方向的大小生成边长分别为
和
的归一化的系数矩阵Gkernel,具体公式为:
r′表示满足指定噪声大小条件约束的噪声灰度,noise(i,j)表示通道内当前待处理像素(x,y)的滤波器邻域中任一点(i,j)的噪声像素,Gkernel(i-x,j-y)表示该邻域点(i,j)的归一化的系数。
随后采用与噪声大小计算类似的方法,进行噪声增益参数的计算,如下所示:
首先,根据通道噪声大小随灰度变化曲线 和增益幅值GraingainRed计算像素点的默认增益Gainr,公式如下:
然后,根据RGB三个通道的横纵比Ratio
XY计算实际水平增益
和垂直增益
具体公式为:
步骤S14:将输出噪声灰度与原始图像叠加,获得添加噪声图像的结果。
此处以R通道为例,其它通道采用相同的处理方法。将步骤S13中获得的增益调整后的点(x,y)的输出噪声灰度与原始图像中该点相对应的原始像素叠加,得到添加噪声后的像素值,即resultRed(x,y)=origiRed(x,y)+r″。
图2-图7为应用本发明所述方法添加噪声后的效果图。图2-图4在图像噪声添加的过程中,只是通过对噪声大小幅值和噪声增益幅值的调整进行了简单的噪声添加,并没有进行通道相关性的增强、以及实际噪声大小参数与增益参数的计算。图2中所选择的噪声大小幅值Grainsize=1,噪声增益幅值Graingain=0.1;图3中所选择的噪声大小幅值Grainsize=3,噪声增益幅值Graingain=0.2,图4中所选择的噪声大小幅值Grainsize=3,噪声增益幅值Graingain=0.2。由图2、图3和图4的比较中可以看出,图3的图像很模糊,而图2与图4相对比较清晰,可见,用户可以简单的通过噪声大小幅值和噪声增益幅值的控制来调整所要添加的噪声,得到需要的图像。
图5中所选择的噪声大小幅值Grainsize=11,噪声增益幅值Graingain=0.2, 通道横纵比RatioXY=10的噪声的效果图,该图中增加了通道横纵比的选择,通过通道横纵比能够对实际的噪声大小和增益的计算,得到增益调整后的输出噪声灰度,从而将该灰度与原始像素叠加得到添加噪声后的像素值。
图6中所选择的噪声大小幅值Grainsize=11,噪声增益幅值Graingain=0.3,RGB相关度系数CRG=CRB=CGB=0.3的图像的效果图;在噪声添加时,通道内的6条可调曲线都设定为了高斯曲线。该图通过RGB相关度系数对所添加的噪声图像进行了相关度的约束处理,增强了三个通道的相关性。
图7中所选择噪声大小幅值Grainsize=7,噪声增益幅值Graingain=0.5,该图在噪声添加时,G通道内的2条可调曲线设定为了高斯曲线,R通道与B通道内的可调曲线的所有点都置零。
采用本发明所述的方法进行图像噪声的添加时,用户可以根据需要输入各种噪声所对应的参数以及RGB通道内6条噪声大小及增益变化曲线,进行包括高斯(Gaussian)、瑞利(Rayleigh)、莱斯(Rician)、伽马(Gamma)及椒盐(Impulse)在内的等各种类型的噪声。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。