图像主要分为位图和矢量图,矢量图可以任意放缩,图形不会有任何改变。而位图一旦放大后会产生较为明显的模糊,线条也会出现锯齿边缘等现象,可能会失去图像原有的边缘拓扑结构。矢量图虽然能对图形进行精确描述,但在以像素为基本显示单元的显示器或打印机上是无法直接表现,给实际的应用造成了很大的不便。本文研究了一种位图转化为矢量图的算法,通过MATLAB编程给出了具体图片算例的矢量化过程。
本模板图形(或图像)在计算机里主要有两种存储和表示方法, 分别是矢量图和位图。
位图虽然内容丰富,应用广泛,但是占用空间大、一旦放大后会产生较为明显的模糊,线条也会出现锯齿边缘等现象, 可能会失去图像原有的边缘拓扑结构,失真大;矢量图[1] [2]虽然占用的空间小,放大失真小、效率高, 但是矢量图大都依靠AutoCAD 等软件绘制成,生成的图形简单,绘制时间长,较复杂的图形,要用某些软件进行轮廓勾画,过程很繁琐。
李学营[3]、梁雄贵[1]等都研究了位图矢量化的相关问题,使用了如模板匹配细化算法、滤波处理算法等多种方法,但分别对圆弧线条和交叉区域处理效果不好,且算法构造复杂,涉及知识和工具过于专业,不易推广。
针对以上存在的问题,本文研究了一种位图转化为矢量图的算法流程,该流程主要分为两大部分:一、图像边缘分割与检测。包括图像分割,灰度处理,二值化处理等;二、图像边缘多项式拟合处理。
基于细化的矢量化的方法,得到拟合后的边界线条的数学表达式,利用数学方程完整反映原有图像的边缘结构。利用上述思路,本文先对形状简单的位图转为化矢量图的处理算法进行了研究,得到了比较好的结果。为了验证该算法流程的可行性,我们给出具体的图片矢量化例子,利用MATLAB 编程对边缘进行提取,再对结果进行数值模拟,得到了拟合后的边界线条的数学表达式和准确的矢量化图像。
最后将算法推广到复杂的几何图形,发现对梯形边界像素的提取存在一定的误差,为了能准确提取各种图像完整的边缘,我们对模型进行了改进,按Freeman 链码[1]的8 个数字0,2,4,6,1,3,5,7的优先级方向搜索下一个边缘像素点,最后得到了比较满意的边缘提取效果。
2. 系统分析和模型建立 为了系统叙述时减少冗余的解释,通过简单归纳可事先规定,接下来的内容都默认如下事实[4] 1) 假设边缘分割时产生的噪声干扰对提取边缘像素的影响可忽略不及; 2) 假设图像在局部小的区域内可以看作近乎规则的几何图形。如果图像在某一区域内不规则,我们在局部细化,可以的到规则的小单元; 3) 假设区域内部的像素分布对边缘像素的提取没有影响; 4) 假设简单图形在边缘提取过程中不存在偏转程度很大的点。
为了能够尽可能准确的提取图像边缘的像素信息,我们在传统的特征曲线提取方法[5]的基础上进行