基于边缘曲线光顺的图像放大算法

更新时间:2023-05-12 06:22:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

121

2006年 工 程 图 学 学 报 2006第4期 JOURNAL OF ENGINEERING GRAPHICS No.4

基于边缘曲线光顺的图像放大算法

侯建华1, 欧宗瑛1, 栾 旭2, 刘英林2

(1. 大连理工大学精密与特种加工教育部重点实验室,辽宁 大连 116024;

2. 中国船舶重工集团公司第760 研究所,辽宁 大连 116001)

摘 要:针对常规插值方法在图像放大时图像轮廓模糊的问题,提出了一种基于边缘的图像放大算法。算法包括边缘曲线光顺和插值放大两个步骤。第1步使用能量优化方法,从离散的边缘曲线数据恢复成连续而光顺的边缘曲线,这些曲线将图像分为若干个区域;第2步基于这些光顺曲线,针对不同的区域分别进行图像插值放大计算。使用该方法得到的放大图像边缘清晰光顺,实例证明该算法产生的图像质量高于常规算法。

关 键 词:计算机应用;图像放大;曲线光顺;插值 中图分类号:TP 391

文献标识码:A 文 章 编 号:1003-0158(2006)04-0105-06

Image Magnification Based on Fairing of Edge Curves

HOU Jian-hua1, OU Zong-ying1, LUAN Xu2, LIU Ying-lin2

( 1. Key Laboratory for Precision and Non-traditional Machining Technology of Ministry of Education, Dalian University of Technology, Dalian

Liaoning 116024, China; 2. CSIC-No. 760 Research and Development Institute, Dalian Liaoning 116001, China )

Abstract: Aimed at the blurring in image magnification using conventional methods, an edge-directed image magnification algorithm is presented. This algorithm includes two stages: fairing of edge curves and interpolation magnification. The first stage is the restoration of continuous and fairness of curves from digitized edge data utilizing energy optimization, and to divide the image into several areas by these curves. The second stage is to interpolate and magnify the image for different areas respectively, based on the curves obtained above. Using this algorithm, the contour of the magnified image can keep sharp and smooth. Examples show that the better results can be obtained than the ones of conventional methods.

Key words: computer application; image magnification; curve fairing; interpolation

图像的放大是从原图像中插值出新的像素。常用的图像插值方法有零阶插值、双线性插值和高阶插值[1]等。采用零阶插值(最近邻插值)时,图

收稿日期:2005-07-11

基金项目:国家863计划资助项目(863-306-ZD13-03-6) 像容易出现马赛克;双线性或高阶插值具有的平

滑功能可有效地克服马赛克,但同时会退化图像的高频部分,模糊图像细节。

121

·106· 工 程 图 学 学 报 2006年

双线性或高阶插值方法使放大图像模糊的原因,在于其插值计算过程中对所有的原始像素同样对待。这样一来,在对原始图像边缘附近的区域进行放大操作时,对边缘某一侧的新插值像素进行的插值计算将同时使用边缘两侧的原始像素数据。而图像中边缘的两侧往往对应不同的物质属性,所以边缘附近新插值像素的计算结果中将同时含有边缘两侧不同的信息,致使结果图像变得模糊。

为解决常规插值放大方法模糊图像细节的问题,必须对边缘两侧的区域分别进行处理。根据边缘曲线对图像的划分,在插值计算新像素时,只使用新插值点所在的区域像素进行插值处理,这样可使新插值点具有明确的区域属性,保证插值计算结果的正确性。基于拟合分界线保持轮廓清晰的图像放大算法[2]就是这样的一类方法,它通过对分界线进行拟合以获得分界线的连续性表示,再据此对图像执行分区域插值放大,取得了一定的效果。但由于分界线本身存在严重的量化噪声,使得放大后的图像中可以看到明显的锯齿形边缘痕迹。

直接使用原始的分界线数据进行图像的放大计算,会使重建的边缘曲线受到量化噪声的影响,致使边缘出现较大的波动形态,影响图像放大的效果。所以,为得到轮廓清晰光滑的放大图像,需要将离散边缘曲线上的量化噪声过滤掉。为此,作者首先对离散边缘曲线进行了光顺处理,以消除量化噪声,再采用三次B样条插值计算出连续的边缘曲线。

边缘曲线将图像划分为若干个区域,图像的插值放大操作针对不同的区域分别进行。此时边缘曲线构成了各区域的边界,对边缘附近的区域进行插值计算时,需要使用区域外部分像素的信息。为保证区域属性的一致性,作者采用区域灰度扩散的方法来获得边界外部区域的有效像素。

文中所介绍的图像放大算法的基础是图像的边缘,针对图像的边缘检测已经有很多方法,对此不再赘述。

8-邻域连通、单像素宽的曲线。利用Canny算子得到的边缘曲线就满足该条件。

边缘曲线光顺处理的目的是要消除离散化边缘曲线上的量化噪声。算法分两步进行,第1步利用能量优化对离散边缘曲线上的数据点位置进行光顺调整,第2步对这些调整后的点利用B样条插值恢复出连续光顺的曲线。 1.1 离散边缘曲线的能量表示 设离散边缘曲线上的数据点按顺序依次为Pi,i=0,1,…,n,则离散点列Pi的能量可用下式表达[3]

E=∑

i=1

n 1

12

ei+1 ei (1)

li+li+1

上式中 ei=(Pi-Pi-1)/li,为弦Pi-1Pi方向上的单位向量,li=║Pi-Pi-1║为Pi-1Pi的弦长。在式(1)中,║ei+1-ei║表示弦向量Pi-1Pi与PiPi+1之间方向的变化量,li+li+1为两段弦长度之和。能量E可用来衡量一条曲线的光顺程度,E的值越大,对应点列的光顺性越差;而E的值越小,对应点列的光顺性越好。所以,对曲线点列Pi进行光顺位置调整的原则就是使E值尽可能小。

作为边界条件,对非闭合曲线,令曲线的端点位置固定不变。对闭合曲线,对Pi点列进行扩展,在P0点之前加入一点P-1,并令P-1=Pn;在Pn点后加入一点Pn+1,使Pn+1=P0,令P-1,P0,Pn,Pn+1保持不变,以使优化后的曲线能够光顺闭合。位置调整操作仅针对Pi,i=1,2,…, n-1进行。为计算方便起见,在后续的优化处理过程中,令li保持其初始值不变。

记位置调整后的点列为Qi,i=1,2,…, n-1,点Qi的初始值为Pi。记点Qi的坐标为(x2i-1, x2i),则所有Qi点的坐标构成向量x=(x1, x2,…, x2n-3, x2n-2)T (T为矩阵的转置)。在曲线能量表达式中,将ei用对应点的坐标予以表示,则式(1)可写为

E(x)=∑[(piTx bix)2+(qiTx biy)2] (2)

i=N

M

1 图像边缘曲线的光顺处理

使用边缘检测算法可以检测出图像中的边缘信息。设经边缘检测算法得到的边缘曲线为

式(2)中的第1项对应能量的X坐标分量,第2项对应能量的Y坐标分量。pi和qi是列向量,其大小为(2n-2)。pi和qi的绝大部分分量为0,只有少数分量为非0。在非闭合曲线的情况下,N=1,M=n-1,bix和biy仅在i=1和i=n-1时不为0。

121

第4期 侯建华等:基于边缘曲线光顺的图像放大算法 ·107·

在闭合曲线的情况下,N=0,M=n,bix和biy仅在i=0,1, n-1, n时不为0。记D=(pN, qN, …, pM, qM)T, b=(bNx, bNy, …, bMx, bMy)T ,于是有

E(x)=(Dx-b)(Dx-b)=xHx-2dx+g (3) 式(3)中,H=DTD,d=DTb,g=bTb。H为对称半正定矩阵,大小为(2n-2)×(2n-2)。 1.2 光顺处理中的约束条件

在对离散边缘曲线点列的位置调整过程中,应使调整后的曲线与原曲线的位置基本保持一致,即使Qi与原数据点Pi的位置偏差限制在一定的范围内。由于原曲线上各点的位置量化误差为±1/2像素,据此给定边缘曲线点位置调整的约束条件如下:设原始图像像素与4-邻域像素间距离为1,则每个Qi点的位置调整范围设定在以原数据点Pi为中心,边长为1的正方形内。记原Pi点的坐标为(Pix, Piy),则有

Pix+0.5≥x2i-1≥Pix-0.5

Piy+0.5≥x2i≥Piy-0.5 (4)

i=1,2,…, n-1

记ub=(P1x+0.5, P1y+0.5,…, P(n-1)x+0.5, P(n-1)y

+0.5)T,则ub为向量x的上界;记lb=(P1x-0.5, P1y-0.5,…, P(n-1)x-0.5, P(n-1)y-0.5)T,则lb为向量x

T

T

T

的下界。上面的式(4)可表示为

ub≥x≥lb (5)

结合式(3)和式(5),离散边缘曲线上的数据点光顺位置调整可表示为下面的优化问题

min{E=xTHx-2dTx+g : ub≥x≥lb} (6) 这是典型的二次优化问题,可以用起作用集方法予以求解[4]。

1.3 利用B样条插值恢复连续的边缘曲线

通过式(6)的优化计算得到光顺的点列Qi后,对由端点和Qi,i=1,2,…, n-1组成的点列采用三次均匀B样条插值,以得到连续的边缘曲线。三次B样条曲线的二阶导数连续,曲线光滑,可以满足人们的视觉要求。B样条曲线插值是一个反算问题[5],需要根据给定的点列计算出控制顶点,使这些控制顶点定义的三次B样条曲线通过给定的点列。在三次均匀B样条插值计算中,选择自由端边界条件,结合曲线上各点的位置可以得到求解方程组,由此可求得各控制顶点。通过这些控制顶点便能够计算出通过上述点列的插值三次B样条曲线。图1是从离散的边缘曲线数据恢复出连续光顺的边缘曲线示例。

(a) (b) 图1 从离散边缘曲线恢复出连续光顺的边缘曲线示例

((a)为原始边缘曲线,图中的方框为各边缘点的调整范围;(b)为光顺后得到的边缘曲线)

2 图像的分区域插值放大

如前所述,为使放大后的图像边缘保持清晰光顺,需要对边缘两侧的图像分别进行处理。作者在对图像进行放大时,采用常用的双线性插值放大算法进行讨论。具体描述如下:(对有多条边缘曲线的图像,每次处理一条边缘曲线) 2.1 原始像素点属性标记 首先,对原始图像中的各像素点予以标记,以确定各像素点的区域属性。

(1)将原始图像中的所有像素标记为C; (2)将原始图像中位于离散边缘曲线上的像素标记为B;

(3)对于标记为B且不是离散边缘曲线端点的像素,将其4-邻域内的非B点标记为N;

(4)对非封闭离散边缘曲线,将其端点像素标记为C。

经过上述处理后,标记为B的点为边缘点,标记为N的点位于离散边缘曲线的两侧,称标记为N的点为临界点,如图2(a)所示。在8-邻域下,标记为N的临界点在离散边缘曲线的两侧形成

121

·108· 工 程 图 学 学 报 2006年

两条临界线,记这两条临界线分别为C1和C2。

记标记为B的点构成的集合为Ω,标记为C的点构成的集合为Γ,曲线C1上的点构成的集合为Ψ1,曲线C2上的点构成的集合为Ψ2。 2.2 插值点区域属性判别

记当前插值点为R。如图2(b)所示,在进行R点的双线性插值计算时,只涉及原始图像插值方格中的4个顶点像素,记4个顶点为Ti,i=1,2,3,4,这4个顶点构成一个小的网格。

当某个顶点Tj的标记为N时,R点所在的插值网格在光顺边缘曲线附近。为了后续的插值计算,需要判断R点的区域属性,即确定R点与曲线C1和C2中的哪一个位于光顺边缘曲线的同一侧。

如果光顺边缘曲线与插值网格的4个边均不相交,则R点必与Tj点位于光顺边缘曲线的同一侧。此时,若Tj∈Ψ1,则R点与C1曲线同侧;若Tj∈Ψ2,则R点与C2曲线同侧。

如果光顺边缘曲线与插值网格的边相交,则插值网格将被该曲线分为两个区域。若将光顺边缘曲线用一些足够短的线段予以近似表示,则每个区域均可看成是由光顺边缘曲线和原插值网格的边构成的多边形。通过判断R点与Tj点是否位于同一区域,可确定R点的属性。比较严格的判别方法是利用点位于多边形内外的判别算 法[6]。但在精度要求不高的情况下,可采用如下的简单判别方法[2],即如果R点与Tj点的连接线段与光顺边缘曲线有一个交点,则认为R点与Tj点位于不同区域,否则R点与Tj点位于同一区域。实际测试结果表明,在放大倍数不高的情况下,应用这个简单判别方法即可得到令人满意的效果。

如果R点与Tj点位于同一区域,则若Tj∈Ψ1,则R点与C1曲线同侧;若Tj∈Ψ2,则R点与C2曲线同侧。如果R点与Tj点不在同一区域,则若Tj∈Ψ1,则R点与C2曲线同侧;若Tj∈Ψ2,则R点与C1曲线同侧。 2.3 图像的插值放大

对双线性插值的4个顶点Ti,i=1,2,3,4,结合顶点和插值点的区域属性重新确定其灰度值如下:

(1)如果Ti∈Γ,即Ti标记为C,则令顶点Ti处的灰度值保持不变,为原始图像的灰度值。

当顶点Ti的标记为N时,R点所在的插值网格在光顺边缘曲线附近。通过2.2节中的方法,可以确定出R点与C1和C2中的哪一条曲线位于光顺边缘曲线的同一侧。

不失一般性,假设R点与C1曲线位于光顺边缘曲线的同一侧。

(2)如果Ti∈Ψ1,则使顶点Ti处的灰度值保持不变,为原始图像的灰度值。

(3)如果Ti∈Ω,即顶点Ti为原离散边缘曲线上的点,对Ti处的灰度值重新计算如下:设在C1曲线上,Ti的4-邻域点共有s个,其灰度值分别为gi,i=1,2,…, s。则将Ti处的灰度值重新调整为

V=(g1+g2+…+gs)/s (7) 该调整过程实际上是灰度数据从插值点本侧的临界曲线向原离散边缘曲线的扩散。

(4)如果Ti∈Ψ2,即顶点Ti为C2曲线上的点,则对Ti处的灰度值重新计算如下:首先根据式(7)确定Ω集合中各点处的灰度值。设在Ω集合中,Ti的4-邻域点共有t个,其灰度值分别为hi,i=1,2,…, t。则将Ti处的灰度值重新调整为:

V=(h1+h2+…+ht)/t (8) 该调整过程实际上是灰度数据从插值点本侧的临界曲线向外进行的二级灰度扩散,即先从本侧的临界曲线扩散到原离散边缘曲线,再从离散边缘曲线扩散到对侧临界曲线。

经过上述对顶点灰度值的重新调整后,再采用双线性插值算法可计算得到R点处的灰度插值结果。如图2(b)所示,设插值网格的边长为1,则R点的灰度计算如下

R=T1·(1-x)·(1-y)+T2·(1-x)·y+

T3·x·y+T4·x·(1-y) (9) 经过这些插值处理后,便可得到放大的图像。由于放大图像的边缘过于锐利,对放大图像进行一到两次空域平滑处理能够得到视觉上更好的效果。

121

第4期 侯建华等:基于边缘曲线光顺的图像放大算法 ·109·

(a) (b)

图2 基于光顺边缘的图像插值计算示意图

((a)为像素标记示意图,为图1(a)中曲线的标记结果,其中实心点标记为B,

空心点标记为N,其余各点标记为C;(b)为双线性插值示意图)

3 测试实例

作者分别以一幅二值图像和一幅灰度图像对上述算法进行测试。

针对二值图像的放大实例如图3所示。图3(a)是一幅原始图像,是一个“人”字;图3(b)对其零阶插值放大4倍,可以看到放大后的图像有明显的锯齿状轮廓;图3(c)对图3(a)用双线性插值算法放大4倍,结果图像的边缘明显变得模糊;图3(d)对图3(a)中的图像采用本文的方法放大4倍,结果图像的边缘光滑清晰。

对二值图像,使用本文的算法时,由于已从

离散的边缘曲线数据恢复出光顺连续的曲线表示,消除了离散曲线的量化噪声,所以,无论对二值图像放大多少倍,本算法都能够获得轮廓清晰光顺的放大图像。

针对灰度图像的放大实例见图4。图4(a)是一幅足踝部CT图像;图4(b)对其用最近邻插值法放大4倍,结果图像中马赛克现象严重;图4(c)对图4(a)中的图像采用双线性插值算法放大4倍,结果图像变得模糊不清;图4(d)对图4(a)中的图像采用本文的方法放大4倍,结果图像的边缘光滑清晰,比图4(b)和图 4(c)的图像质量要好。

(a) (b) (c) (d)

图3 二值图像的放大实例

((a)为原始二值图像;(b)为(a)中图像零阶插值放大4倍的结果;

(c)为(a)中图像双线性插值放大4倍的结果;(d)为(a)中图像使用本文方法放大4倍的结果)

(a) (b) (c) (d)

图4 灰度图像的放大实例

((a)为原始灰度图像;(b)为(a)中图像零阶插值放大4倍的结果;

(c)为(a)中图像双线性插值放大4倍的结果;(d)为使用本文的算法对(a)中图像放大4倍的结果)

121

·110· 工 程 图 学 学 报 2006年

4 结 论

作者提出的基于离散边缘曲线光顺处理的图像放大算法,是一种基于图像边缘的处理方法,在图像放大操作中,通过对边缘附近不同区域的分别处理,保持了图像的高频部分,使放大后的图像轮廓清晰光滑。算法利用图像边缘点位置的优化调整,消除了边缘曲线的量化噪声,使离散边缘曲线上的点列实现了光顺。结合优化后的边缘曲线与周围网格点的相对位置关系,对插值点的各种不同情况分别进行处理,有效地克服了常规放大方法对整幅图像无区别放大时模糊区域轮廓的缺点,显著地改善了放大图像的质量。本实验用例选用了二值图像和灰度图像进行了分析讨论,但本方法很容易推广到彩色图像的放大中。

参 考 文 献

[1] Kenneth R Castleman. Digital image processing [M].

Englewood Cliffs: Prentice-Hall International Inc., 1996. 117-119.

[2] 吴良武, 欧宗瑛. 保持轮廓清晰光滑的灰度图像放

大算法[J]. 计算机辅助设计与图形学学报, 2002, 14(4): 306-309.

[3] 朱心雄, 等. 自由曲线曲面造型技术[M]. 北京: 科

学出版社, 2000. 364-365.

[4] 马振华, 等. 现代应用数学手册:运筹学与最优化理

论卷[M]. 北京: 清华大学出版社, 1998. 180-182. [5] 金廷赞. 计算机图形学[M]. 杭州: 浙江大学出版社,

1998. 169-170.

[6] 周培德. 计算几何——算法分析与设计[M].北京:

清华大学出版社, 2000. 32-34.

本文来源:https://www.bwwdw.com/article/bm8e.html

Top