运用盘状 B 样条曲线 (DBSC) 生成灰度线条图象的矢量表达
DBSC-Based Grayscale Line Image Vectorization
-
摘要: 矢量图形学在计算机图形学的许多领域中有着非常重要的作用。矢量化的图形表示不仅能减少存储空间的需求,还便于调整图形大小而不降低表达质量。但是,目前很多算法和应用软件中仍采用光栅化的图形表示,其主要原因之一就是缺乏将光栅图形转换到矢量图形的工具。 本文提出一种新的方法,以处理线绘制时光栅图形到矢量图形的转换。线绘制就是只采样线条表示的图象,比如铅笔笔划或钢笔笔划等。 在此,一种比较好的处理方法是生成笔划的骨架,再对应骨架生成有一定粗细变化的笔划。于是,要处理的问题就是从光栅图象中抽取骨架及相关的粗细参数,并基于它们完成对模型的表示。 显然,对于线绘制图象的骨架抽取可采用 B- 样条曲线。近年来,圆盘 B- 样条曲线 (Disc B-Spline Curves,简称 DBSC) 常用来绘制笔划,它根据带宽度值的离散控制点来生成笔划的边界。我们将在新方法中采用这种圆盘 B- 样条曲线。 下面,我们将讨论如何从光栅图象中抽取骨架和生成相关的粗细参数。骨架抽取的方法很多,但我们将采用我们自己开发的一种抽取方法,因为它操作灵活,能更好地适应我们工作的需要。而已有的方法一般只便于处理边界清晰的情况,而实际上笔划相关的边会比较模糊而不清晰。比如瘦身法和 MAT 方法能生成很好的骨架,但它们还需要抽取宽度值,且所生成的骨架不平滑。 我们选择高斯逼近来衡量笔划参数和骨架的计算。基于光学特性的可观察性,我们定义了笔划的可见边界 ( 人眼能观察到的边界 ) 和实际边界 ( 灰白象素边界 ),并通过校正矩形窗口的移动来求取一种覆盖参数的最大值(窗口中象素的灰度之和),以进行相关的度量。在此,覆盖参数反映可见边界到实际边界间灰度的积分计算。这种操作也便于处理有模糊边和象素灰度呈梯度变化的笔划。 计算校正矩形的宽度后,我们用可变长度的矩形窗口来定义一个近似切线,即表示相应区域中沿笔划偏移方向的切线。笔划的曲率越大,窗口的长度就越小。如上所述,窗口的长度定义了笔划片断的偏移量;窗口的中心定义了一个骨架点,以用作 DBSC 的控制点。这样,在光栅图上,笔划对应的窗口就确定了一系列的骨架点,它们之间的距离大约是笔划宽度的 1.5 倍。笔划弯曲越大,骨架点之间的距离就越近。 沿着笔划滑动窗口,就能最终处理完图象。由此,我们就得到了一系列的骨架点,即带相应宽度的 DBSC 的控制点。这些点将根据骨架的端点和交叉进行分组,以表示笔划的各个片段。 基于以上操作,我们就能为一幅光栅图生成基于 DBSC 的矢量表示,以进行高质量的绘制。 目前,该方法还只能生成黑白图象,尽管我们是对原始的灰度图象进行计算。这是由于 DBSC 的局限性。我们正进行改进,以能实现灰度图到灰度图的转换。至于转换过程中的平滑及细节的丢失,这是由于我们假定笔划的宽度变化会受噪声的影响而导致的。实际上,我们并不期望得到完全正确的结果,只保证转换结果有较好的精度。Abstract: Vector graphics plays an important role in computer animation and imaging technologies. However present techniques and tools cannot fully replace traditional pencil and paper. Additionally, vector representation of an image is not always available. There is not yet a good solution for vectorizing a picture drawn on a paper. Thiswork attempts to solve the problem of vectorizing grayscale line drawings. The solution proposed uses Disk B-Spline curves to represent strokes of an image in vector form. The algorithm builds a vector representation from a grayscale raster image, which can be a scanned picture for instance. The proposed method uses a Gaussiansliding window to calculate skeleton and perceptive width of a stroke. As a result of vectorization, the given image is represented by a set of Disk B-Spline curves.