基于用户交互的光栅图像局部矢量化方法

2011-07-18 07:40李文庆郑秋华张坤龙
关键词:矢量化多边形结点

李文庆,郑秋华,张坤龙

(杭州电子科技大学图形图像研究所,浙江杭州310018)

0 引 言

传统的印花设计方法是专业印花设计者自己手动设计,这种方法效果往往很好,但耗时耗力,效率很低[1]。而国内外现有的有名的矢量化软件的普遍缺点是抗噪声性差、矢量化的精度和速度都不高,这些软件的应用偏向于工程图纸领域、地理信息系统和计算机辅助制造等[2,3]。虽然市面上也出现了一些图像自动矢量化的软件用于印花设计,但这些软件大多进行整幅图像矢量化,且矢量化后的结果往往是没有意义的矢量图形,设计者虽然可以通过编辑合成有意义的封闭图形[4,5],但对于非计算机专业的设计者来说,其过程相当复杂,很难按照印花设计者简单易用的要求。国内外也有一些织物CAD软件,比较有名的德国Grosse公司Jac系统,中国的金昌软件等,目前纹织CAD系统侧重于图像处理功能,矢量化方面做的不多。所以,本文提出了一种基于用户交互的图像局部矢量化方法,并应用在印花快速设计中。

1 二维栅格图像矢量化方法

图像矢量化是指将栅格图像转换为矢量图像的过程。在印花设计时,先对图像的感兴趣一部分(比如挂在屋檐下的铃铛)矢量化,再把矢量化的结果作为一个矢量图元保存起来,然后通过矢量工具将这些图元融合在一起,将大大提高印花设计的速度和效率,这种方法就是图像局部矢量化,图像局部矢量化是将局部有意义的栅格图像矢量化并保存起来的过程,这种方法的优点:(1)通过本文提出的用户交互方法,交互简单,可以迅速提取感兴趣的图像元素,进行图像局部矢量化,并保存为矢量图元。基于图像进行矢量化,矢量化得到的图形和原图像匹配度高,计算机处理速度快,节省印花设计师的设计时间;(2)对于单个的矢量图形,设计者可以方便的对矢量图元进行放缩、旋转和填充纹理等操作,符合现在的模块设计思想。

图像矢量化的方法,分为两大步:(1)图像预处理阶段。包括彩色图像灰度化,灰度图像二值化,图像去噪,图像增强,骨骼化,边缘跟踪等图像处理方法。图像预处理是为了去除毛刺、斑点、孤立点、空心点等,得到结点有序的骨架图或者边界跟踪轮廓图[4,5],图像处理各个步骤没有绝对的先后顺序,达到能提取有意义的图形即可;(2)拟合及表示。经过图像预处理之后,得到有序的骨架图或者边界跟踪轮廓图,结点往往非常多,此时进行直线或曲线拟合:首先将其轮廓分段,再用直线和曲线拟合以简化结点,减小存储量,最后保存为矢量格式。直线拟合方法有多边形拟合方法和hough变化方法等;常用的曲线拟合方法有3次hermite样条曲线拟合、B样条曲线拟合和Bezier曲线拟合等。

1.1 用户交互的设计

算法的目的是对局部图像进行矢量化,且生成封闭图形,以方便后续对封闭图形的各种操作。本文提出的3种用户交互方式:(1)多边形包围图像的外轮廓跟踪法。确定了要矢量化的图像局部之后,通过图像分割,橡皮擦等处理,使得要矢量化的图像局部不与其他图像黏连,用户用鼠标点多个点作为多边形的顶点,用多边形包围将要矢量化的图像;(2)内轮廓跟踪法。有意义的图像元素往往具有某些同样的性质,比如:图像中的花瓣经过二值化以后都是黑色象素,花瓣和花瓣之间是白色的象素。此种类型的图像,用轮廓跟踪方法可以方便的得到图像的内轮廓。确定了要矢量化的图像局部之后,图像经过处理后,使得要矢量化的图像局部内部是空的,且外轮廓是封闭的,此时,用户在有意义的图像元素内部用鼠标点击一下,图像边界跟踪算法即可生成对应局部图像的轮廓;(3)思想来源于photoshop中有一个磁性套索工具。用户在图像点击确定第一个顶点,软件会随着鼠标移动方法,根据图像的象素之间的差异,自动跟踪到当前鼠标位置,当用户再次点击,之前保存的自动跟踪的点也会保存起来,并以最后一次点击的位置作为起点,继续跟踪鼠标的方向,直到用户点击在起点附近,起点和终点闭合为封闭轮廓。

1.2 边界跟踪

边界跟踪的目的有两个:(1)得到有意义的局部图像的内轮廓或者外轮廓;(2)得到有序的轮廓象素点,以便矢量化。第一种交互方式,在多边形包围图像进行矢量化时采用的是外轮廓跟踪方法;在第二种交互方式中,在要进行图像处理,保证矢量化的图像轮廓是连续的,边界跟踪时将图像的黑色边界作为背景,将图像的白色区域作为前进进行内轮廓跟踪。

1.3 阈值迭代增加的多边形拟合

多边形拟合算法是用多边形来逼近图像轮廓,目的是为了用更少的点拟合出轮廓的边界,在一定的误差范围内,减少存储量。该算法思想是,设定最大阈值,当前阈值从一个较小的数值开始,以一定步长逐渐增加到最大阈值,增加一次算一次迭代,在每一次迭代中,计算每一个结点Pi到前后结点组成的线段Pi-1Pi+1的距离hi。若有hi小于阈值,找出最小的hi对应的结点,删除之,当所有hi都大于设定的阈值Threshold,此次迭代结束;如图1所示。

图1 多边形拟合示意图

1.4 实验和结果分析

为了验证算法的有效性,本文对新疆维吾尔族服饰和布料花纹进行局部矢量化,如图2所示。图2(a)是对原图进行图像预处理得到的图像,灰色的部分是通过第二种用户交互方式,内边界跟踪得到的5个边界轮廓图;图2(b)、(c)是最大阈值设为0.7进行多边形拟合得到的拟合多边形轮廓以及拟合轮廓在原图上的对比。当最大阈值小于等于0.7时,拟合结果都和原图形匹配的很完美,故阈值小于0.7时的拟合的轮廓图没有列出。实验表明最大阈值越大,多边形拟合边界轮廓图及在原图偏差越大。

图2 图像局部矢量化效果图

在最大阈值为0.7时,边界结点减少到了原来的1/4左右,拟合效果和原图最为相似,大大减少了边界点数。随着阈值的不断增大,边界结点数逐渐减小,从拟合后的边界图也原图的对比中会发现,在某些地方已经慢慢出现误差,随着阈值增大,误差越来越严重。如表1所示:

表1 图像轮廓在不同阈值的多边形拟合时剩余的边界结点数

阈值迭代增加的多边形拟合是基于的当前点到其前后两点连线的距离与阈值的比较进行判断是否删除节点。算法第1次迭代时,假设Pi-1,Pi,Pi+1是相邻的边界上的3个结点,Pi到线段Pi-1Pi+1最大是,当阈值设为2以上时,在曲线弯曲度很小的轮廓结点会被删除,明显出现拟合多边形和原轮廓的偏差,阈值越大,偏差越大。当阈值设计的很小,比如0.1,可以有效的减少相邻3点共线时,即hi值为0对应的点,此类点优先去除。随着3点共线中间结点的去除,阈值迭代增加,可以继续减少轮廓结点,不同尺度的轮廓和不同的精度要求得到的最佳阈值不一样。

机器配备单核CPU3.0GHz,内存1G,在VC++6.0开发环境下,用第2种用户交互方式进行内轮廓跟踪每一个图形时间小于1s,所提出的阈值迭代增加的多边形拟合算法对新疆维吾尔族服饰花纹图像的处理时间小于1s,能达到了实时要求。

2 结束语

本文提出一种基于用户交互的光栅图像局部矢量化的方法,该方法首先将彩色图像预处理得到无噪声的二值图像,其次通过用户交互,用边界跟踪方法得到封闭的有序的局部图像轮廓,然后通过基于阈值迭代增加的多边形拟合轮廓方法进行多边形拟合轮廓。局部矢量化之后,保存为单个的矢量图元,图元作为基本图形操作单元,可以进行图形的各种编辑,结点的调整,旋转和放缩,纹理填充等。最后,本文对新疆维吾尔族服饰花纹进行实验,实验表明本文提出的多边形拟合轮廓方法能有效的减少了轮廓结点个数,将其应用在印花设计中,得到了较好的效果。如图3所示,是新疆维吾尔族服饰花纹图像局部矢量化后的图元在织物印花设计中重组得到的图形,图形填充了颜色和纹理。

图3 图像局部矢量化在印花设计中的应用

[1] 于喜元.提花织物花型预处理系统[D].杭州:浙江大学,2005.

[2] 彭荣杰.图像矢量化方法研究与应用[D].武汉:华中科技大学,2006.

[3] 何爱君.光栅图像矢量化研究及应用[D].广州:广东工业大学,2008.

[4] Rafael C.Gonzalez.数字图像处理[M].北京:电子工业出版社,2003:432-444.

[5] 谢凤英,赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社,2008:394-458.

猜你喜欢
矢量化多边形结点
多边形中的“一个角”问题
基于八数码问题的搜索算法的研究
多边形的艺术
解多边形题的转化思想
多边形的镶嵌
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
农村土地承包经营权确权登记调查底图制作方法的探究
DEM的建立及其在林业上的应用
交互式矢量化技术在水文站网分布图编绘中的应用
基于VP Studio和CASS的栅格地形图矢量化方法