APP下载

一种新的基于四点插值细分的图像修复算法

2011-02-19韩翠英段琳琳

制造业自动化 2011年3期
关键词:面点像素点细分

韩翠英,段琳琳

HAN Cui-ying1,DUAN Lin--lin2

(1.安阳工学院,安阳 455000;2.郑州大学,郑州 450001)

0 引言

图像破损以及数据丢失是图像经压缩、传输、解压缩过程中经常遇到的问题,这一问题已经引起图形图像处理研究人员的广泛关注,图像破损中较为严重的情况是像素群丢失,如图像经编码后在传输中受到干扰而出现解码后的像素群丢失,或由解码技术本身决定的图像不能完全复原。针对单像素丢失,常见的解决方法为简单的邻点平均法和中指滤波法。对像素群丢失的情况则问题比较复杂,只能根据待修复区域适当范围内的像素所含信息通过建立的修复规则进行修复,要想完全修复是不可能的。

1 基于四点插值细分模式的修复算法

1.1 细分细则

插值面分裂型细分方法是指用于规则四边形网格时,其细分规则是曲线四点插值细分模式通过张量积形式的自然推广,对于非正规四边形网格采取特殊的细分规则。通过一定规则作用到旧网格上产生新网格,通过网格不断加细最终生成光滑曲面。该插值面分裂型细分方法的细分规则是曲线四点插值细分模式通过张量积形式的自然推广,对于非正规四边形网格采取特殊的细分规则。通过一定规则作用到旧网格上产生新网格,通过网格不断加细最终生成光滑曲面。新网格的生成规则包括两部分,即几何点的产生和拓扑结构的建立。新的几何点包括新边点、新顶点、新面点,新边点是对应边的两端邻近四个顶点的加权平均;新顶点等于旧顶点;新面点是对应面上所有顶点及周围的一些点的加权平均。其拓扑结构依如下规则建立,连接每一新面点与其周围的新边点;连接每一新顶点与其周围的新边点。

1.2 对破损图像区域的预处理

设二元函数z=f(x,y),定义区域为D,值域为G。我们把图像中的像素点位置集合视为空间曲面的定义区域,即二元函数z=f(x,y)中的D;把图像中像素点处的灰度值与空间曲面的函数值相对应,即二元函数z=f(x,y)中的G。由于图像所反映的是现实的世界,因此除边缘(轮廓)部分外,图像中像素的灰度值一般可看作是连续变化的,这样就可以采用曲面四点插值细分模式的细分规则。进行插值,恢复其灰度值。这样做的优点在于能够合理而有效地利用破损像素块周围像素灰度特点构造未知像素的灰度值,且由四点插值细分理论,二元函数z=f(x,y)在该部分的灰度函数具有一阶连续性。但如果破损像素块包含边缘像素时,利用曲面细分模式进行插值修复,导致修复后图像边缘被过度光滑,修复效果不理想。因此,在进行图像修复前,需要对图像进行预处理,判断破损区域是否存在边缘像素。

利用求破损图像周围的各邻点(所谓邻点是指距破损区域边缘最近的非丢失的像素点)梯度的方法,判断破损图像周围像素的灰度变化情况,即检测出在破损图像区域中可能包含的边缘像素点。如果存在边缘点,找出其边缘的走向,利用四点插值细分规则的边点计算方法对边缘像素进行修复,然后再用曲面细分规则对其它区域进行修复。若破损图像区域中不包含边缘点,则直接利用曲面细分规则对破损区域进行修复。

图1 假设破损图像区域

假设破损图像区域如图1所示。图中阴影部分为破损区域,为了便于处理,将破损区域外推成矩形区域,并视为待修复的破损区域,该区域所包含的像素为 。设破损区域的某一邻点A的坐标为(i,j),破损图像区域的左上角的坐标为(iu,jl),右下角的坐标为(id,jr)如图1所示。

当按(1)、(2)式给出的i,j值,可以取遍破损图像区域的所有邻点。对像素点A(i,j),求其梯度幅值和其梯度幅角为:

对于所有的破损区域的所有邻点,由公式(3)、(4)得到所有破损图像区域的邻点的梯度幅值和梯度方向的集合{G(i,j}和{θ(i,j}。为避免修复的复杂性和减少计算量,对梯度幅值设置一个闽值k,然后,将G(i,j)和阐值k进行比较。如果梯度幅值G(i,j)大于k,则该像素点(i,j)被认为是阶跃点(或称为边缘点);反之则认为为光滑点。如果破损图像区域位于图像的边缘处,通过这样的比较,即可留下破损图像区域邻点的边缘像素点。对所有的这样的像素点进行线插补后,再对剩余区域按曲面插值算法进行修复;如果破损区域位于图像的光滑区域,则跳过线插值修复,而直接进行曲面插值修复。

1.3 基于四点插值细分模式的修复算法

为了说明这种算法,我们假设有一边缘破损区域的图片,如图2所示。其中“。”表示待修复的像素,“。”为破损图像区域外围的己知像素,“。”为面点和边点,并以已知A的坐标,设图像的灰度值用f(x,y)表示,x,y为像素的坐标;初始层k=0。

图2 假设一边缘破损区域图

具体的曲面四点插值细分模式用于破损图像修复的算法如下:

1)根据破损区域的像素个数和破损区域的外邻点A求待修复区域中的中间像素点(面点)的位置,设求得面点S的坐标为(i,j),距A的距离(像素点个数)为p,q,则可用面点S的坐标和p,q将A点表示为A(i-p,j-q)。

2)以p,q为步长,以S点为基准,在破损区域周围取如下16个已知像素点(取点是按曲面四点细分规则进行的),即:f(i-3p,j-3q),f(i+3p,j-3q),f(i+3p,j+3q),f(i-3p,j+3q),f(i-p,j-3q),f(i-p,j+3q),f(i+p,j-3q),f(i+p,j+3q),f(j-3P,j-q),f(i-3P,j+q),f(i+3P,j-q),f(i+3P,j+q),f(i-p,j-q),f(j-p,j+q),f(i+p,j-q),f(i+p,j+q)。然后计算面点S的灰度值。

3)以新计算的面点S为已知点,计算面点。该步需要计算出四个新边点,如图4所示。具体算法这里以B点为例进行说明。为计算边点B的灰度,首先计算出B点在该行破损区的位置,该点的坐标为(i,j+q/2),然后,按照边点细分规则取如下四点f(i,j-2,),f(i,j-q),f(i,j)(由第二步计算出的面点),f(i,j+q)。再计算出边点B的灰度值f(i,j+q/2)。同理可计算出其它三个边点。

4)使k=k+1,利用第二步和第三步计算的面点、边点为己知点,计算k+1的面点和边点。为计算第k+1层的面点、边点,将破损区域划分22k个区域,并根据不同的区域调整A点的位置,并使p=p/2,q=q/2。

5)返回第一步,计算22k个区域的面点和边点,直到p,q的值小于1为止。

1.4 算法仿真结果

为验证算法的有效性,本文对lena图进行了人为的损坏,破损区域大小均为7×7,并包含了平滑区域和含有边缘区域,如图3所示。由图中可以看出,修复后的图像和原始图像的效果非常接近,因此验证了本文所提出的四点插值细分模式用于破损图像的修复算法是有效的,恢复后的图像的质量也是优良的。

图3 对本文算法的验证图

2 结论

本文提出一种新的基于四点插值细分的图像修复算法,该方法来源于计算机辅助几何设计研究领域中三维空间自由曲线曲面造型技术。使用该方法不仅可以修复不规则像素群,而且修复边缘具有很好的平滑过渡性,但如果图像破损处的灰度有阶跃或近似阶跃变化时,我们用梯度方法对破损图像周围的边缘像素点进行检测,对破损区域中包含的边缘像素点按照四点插值细分模式中的边点计算规则进行单独处理,在破损图像修复中得到了较好的结果。

[1]檀结庆,汪忠庆.一种新的基于邻近像素点的图像修复算法[J].合肥工业大学学报(自然科学版),2006,29(9):1072-1076.

[2]周春霞,吴锡生.基于方差和边缘插值的邻近点图像修复算法[J].计算机工程与应用,2008,44(14):184-186.

[3]张智丰,张亚荣.细分曲线参数化与累加弦长参数化的数值比较[J].湘潭师范学院学报(自然科学版),2009,31(4).

猜你喜欢

面点像素点细分
基于局部相似性的特征匹配筛选算法
面点的盘饰艺术研究
关于中式面点的创新与发展方向探析
深耕环保细分领域,维尔利为环保注入新动力
涂梅玉 让创意面点活起来
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
享受美味,吃“场面面点”
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
1~7月,我国货车各细分市场均有增长