一种数字图像自动祛除斑点的方法技术

技术编号:9434960 阅读:85 留言:0更新日期:2013-12-12 00:55
本发明专利技术公开了一种数字图像自动祛除斑点的方法,其特征在于:通过对图像A依次进行灰度化、对比度增强、梯度极大值查找、皮肤排除、孤立点消除、高斯模糊、阈值处理、区域表求和得到结果D;最后根据结果D与梯度极大值查找的结果对图像A里的斑点进行泊松方程处理,得到自动祛痘祛斑祛痣的最终效果。本方案完全省却了数字图像祛斑操作中手动的动作,整个过程可自动完成,无需手动标定和选择斑点,节省了操作时间和步骤。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,其特征在于:通过对图像A依次进行灰度化、对比度增强、梯度极大值查找、皮肤排除、孤立点消除、高斯模糊、阈值处理、区域表求和得到结果D;最后根据结果D与梯度极大值查找的结果对图像A里的斑点进行泊松方程处理,得到自动祛痘祛斑祛痣的最终效果。本方案完全省却了数字图像祛斑操作中手动的动作,整个过程可自动完成,无需手动标定和选择斑点,节省了操作时间和步骤。【专利说明】
本专利技术涉及一种数字图像的处理方法,具体涉及一种自动祛除数字图像中斑点的图像处理方法。
技术介绍
随着数字便携设备的普及,各种设备包括手机、平板电脑中也随之大量地应用了数字摄像装置,使用户拍摄照片的门槛大大降低,各种和生活有关的拍摄可以通过简单的操作完成,具有十分便利的特点。特别是对个人的自拍,已成为我们日常生活中常见的行为,甚至已经作为一种社交的技术手段。这类针对人像,特别是脸谱的拍摄,通常需要自拍后对图像进行调整和美化。这类操作比较常见的一种就是将图像里一些不想展现的元素祛除(例如痘、斑、痣等)。虽然现在的图像处理软件很多都可以满足用户的大部分需求,具备这类祛斑的功能,但是现有的祛斑操作仍然步骤繁多,不够便利和快速。如此,如何尽量少地让用户操作,如何更智能、快速地祛除数字图像的暗斑,成为一个亟待解决的问题。
技术实现思路
针对现有数字图像处理方法缺少快速、自动的处理的解决办法,本专利技术提出一种数字图像自动祛斑的方法,其方案如下:,它包括以下步骤:I)接收一数字图像A,对图像A进行灰度化处理,得到灰度图像B ;该处理采用下列两式中的一个:Gray=0.299*Red+0.587*Green+0.114*Blue ;Gray=(Red*306+Green*601+Blue*l17+512) / 1024 ;其中,Gray为该灰度图像B各像素点的灰度值,Red、Green、Blue分别为图像A各像素点红、绿、蓝三个通道的颜色值;2)对灰度图像B进行对比度增强处理,公式为:nResult=nColor+(nColor-128)* (1.0+Contrast) / 255其中,nResult表示对比度增强后的灰度值,nColor表示要进行对比度增强的灰度值,Contrast为对比度增强的强度,范围;3)对灰度图像B进行梯度极大值查找,步骤如下:-1 -2 -1首先用O O O与灰度图像B里的逐个像素点进行卷积运算,然后将计算后的I 2 I结果进行统计,并将统计结果保存到一个大小为256的数组里,根据统计结果的计算得到阈值K,根据阈值K对卷积运算后的结果进行阈值化处理,大于等于阈值K的设置为255,小于阈值K的设置为0,最终得到梯度结果C ;4)对梯度结果C先后进行皮肤排除与孤立点消除处理;图片A的宽为w,图片的高为h ;皮肤识别后的数据为pEdgeTable ;i表示当前像素点的行数,j表示当前的列数;皮肤排除的步骤:判断当前的像素点是否是皮肤;如果是皮肤的话,则将其所对应的梯度结果C上的值设置为255 ;该皮肤判断的方法可采用多种现有技术,如下述文献提及的方法 M.J.Jones and J.Μ.Rehg, “Statistical Color Models with Application toSkin Detection”Proc.CVPR.1999.该孤立点消除处理步骤为:a.建立边缘个数统计表,过程如下:建立一个数组pSumTable,并都初始化为O,数组的大小为(w+l)*(h+l);接着从第2行开始进行计算,并且每行计算时都是从第2列开始的(即第一行和第一列的数据都不用参与这个计算),每行从预设PassSum=O开始赋值;pass Sum=p ass Sum+(pEdgeTable&0X 01);pSumTable=pSumTable+passSum ;b.剔除不连续的点:设定一个大小为3X3的窗口,首先判断pEdgeTable当前像素点的值是否等于0,如果等于0,则继续遍历下一个像素点,否则执行下面操作:计算pEdgeTable当前像素点为中心的所述窗口内其他像素的值;假设上为top,下为bottom,左为left,右为right,则top=max(0, j-1);bottom=min(h, j+2); right=min(w, i+2);left=max(0, i_l);假设上一个搜索窗口内的Edge个数为preWinEdgeCount ;当前搜索窗口内的Edge个数为 curWinEdgeCount ;先计算上一个搜索窗口内的Edge个数:pi= (w+1)*top+left ;p2= (w+1)*bottom+left ;offset=right-left ;preffinEdgeCount=pSumTable+pSumTable-pSumTable--pSumTable;接下来预设r=2,并做循环,直到r大于5则跳出循环,以下为循环的步骤:计算当前搜索窗口内的Edge个数:top=max (0, j-r);bottom=min(h, j+r+1);right=min(w, i+r+1);left=max(0, i_r);pi= (w+1)*top+left ;p2= (w+1)*bottom+left ;offset=right-left ;curffinEdgeCount=pSumTable+pSumTable-pSumTable--pSumTable;判断curWinEdgeCount-preWinEdgeCount是否小于2,如果小于的话,则认定为不连续的边缘,归为奇异点,将pEdgeTable在该像素点的值设为O ;否则将preWinEdgeCount=CurffinEdgeCount ;6)对梯度结果C进行高斯模糊处理,并做阈值处理;高斯模糊是用正态分布计算图像中每个像素的变换:【权利要求】1.,其特征在于:它包括以下步骤:1)接收一数字图像A,对图像A进行灰度化处理,得到灰度图像B;该处理采用下列两式中的一个:Gray = 0.299*Red+0.587*Green+0.114*Blue:Gray = (Red*306+Green*601+Blue*l17+512)/1024 ;其中,Gray为该灰度图像B各像素点的灰度值,Red、Green、Blue分别为图像A各像素点红、绿、蓝三个通道的颜色值;2)对灰度图像B进行对比度增强处理,公式为:nResult=nColor+ (nColor-128)*(1.0+Contrast)/255其中,nResult表示对比度增强后的灰度值,nColor表示要进行对比度增强的灰度值,Contrast为对比度增强的强度,范围;3)对灰度图像B进行梯度极大值查找,步骤如下: 首先用 2.根据权利要求1所述,其特征在于:所述步骤2)中,所述对比度增强的强度Contrast为0.15。3.根据权利要求1所述,其特征在于:所述步骤5)中的阈值K2设为20。4.根据权利要求中 R 为 200,T 为 128。I所述,其特征在于:所述步骤7)【文档编号】G06T5/00GK103440633SQ201310404195【公开日】2013年12本文档来自技高网...

【技术保护点】
一种数字图像自动祛除斑点的方法,其特征在于:它包括以下步骤:1)接收一数字图像A,对图像A进行灰度化处理,得到灰度图像B;该处理采用下列两式中的一个:Gray=0.299*Red+0.587*Green+0.114*Blue:Gray=(Red*306+Green*601+Blue*117+512)/1024;其中,Gray为该灰度图像B各像素点的灰度值,Red、Green、Blue分别为图像A各像素点红、绿、蓝三个通道的颜色值;2)对灰度图像B进行对比度增强处理,公式为:nResult=nColor+(nColor?128)*(1.0+Contrast)/255其中,nResult表示对比度增强后的灰度值,nColor表示要进行对比度增强的灰度值,Contrast为对比度增强的强度,范围[0.0,1.0];3)对灰度图像B进行梯度极大值查找,步骤如下:首先用-1-2-1000121与灰度图像B里的逐个像素点进行卷积运算,然后将计算后的结果进行统计,并将统计结果保存到一个大小为256的数组里,根据统计结果的计算得到阈值K,根据阈值K对卷积运算后的结果进行阈值化处理,大于等于阈值K的设置为255,小于阈值K的设置为0,最终得到梯度结果C;4)对梯度结果C先后进行皮肤排除与孤立点消除处理;图片A的宽为w,图片的高为h;皮肤识别后的数据为pEdgeTable;i表示当前像素点的行数,j表示当前的列数;皮肤排除的步骤:判断当前的像素点是否是皮肤;如果是皮肤的话,则将其所对应的梯度结果C上的值设置为255;该孤立点消除处理步骤为:a.建立边缘个数统计表,过程如下:建立一个数组pSumTable,并都初始化为0,数组的大小为(w+1)*(h+1);接着从第2行开始进行计算,并且每行计算时都是从第2列开始的(即第一行和第一列的数据都不用参与这个计算),每行从预设passSum=0开始赋值;passSum=passSum+(pEdgeTable[j*(w+1)+i]&0×01);pSumTable[j*(w+1)+i]=pSumTable[(j?1)*(w+1)+i]+passSum;b.剔除不连续的点:设定一个大小为3×3的窗口,首先判断pEdgeTable当前像素点的值是否等于0,如果等于0,则继续遍历下一个像素点,否则执行下面操作:计算pEdgeTable当前像素点为中心的所述窗口内其他像素的值;假设上为top,下为bottom,左为left,右为right,则top=max(0,j?1);bottom=min(h,j+2);right=min(w,i+2);left=max(0,i?1);假设上一个搜索窗口内的Edge个数为preWinEdgeCount;当前搜索窗口内的Edge个数为curWinEdgeCount;先计算上一个搜索窗口内的Edge个数:p1=(w+1)*top+left;p2=(w+1)*bottom+left;offset=right?left:preWinEdgeCount=pSumTable[p2+offset]+pSumTable[p1]?pSumTable[p2]?pSumTable[p1+offset];接下来预设r=2,并做循环,直到r大于5则跳出循环,以下为循环的步骤:计算当前搜索窗口内的Edge个数:top=max(0,j?r);bottom=min(h,j+r+1);right=min(w,i+r+1);left=max(0,i?r);p1=(w+1)*top+left;p2=(w+1)*bottom+left;offset=right?left:curWinEdgeCount=pSumTable[p2+offset]+pSumTable[p1]?pSumTable[p2]?pSumTable[p1+offset];判断curWinEdgeCount?preWinEdgeCount是否小于2,如果小于的话,则认定为不连续的边缘,归为奇异点,将pEdgeTable在该像素点的值设为0;否则将preWinEdgeCount=curWinEdgeCount;5)对梯度结果C进行高斯模糊处理,并做阈值处理;高斯模糊是用正态分布计算图像中每个像素的变换:G(u,v)=12πσ2e-(u2+v2)/(2σ2)其中r是模糊半径,σ是正态分布的标准偏差,u是原像素点在x轴上的位置偏移值。V是原像素点在y轴上的位置偏移值;阈值的公式为:如果大于等于阈值K2的话,则值设置为255,否则设置为...

【技术特征摘要】

【专利技术属性】
技术研发人员:张伟傅松林李志阳张长定
申请(专利权)人:厦门美图网科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1