SVG——新一代Web设计及互动媒体的革新

中国医疗可视人数据集的图像矢量化案例

中国医疗可视人数据集的图像矢量化应用案例   矢量图和一般的图像相比较有其不可比拟的优越性,可以无限的放大而局部没有失真,目前还没有一种通用的方法来对图像实施矢量化。本实验针对中国可视人数据集图像,对其中的一些图像实施矢量转换,以探讨对中国可视人(CVH)数据集进行图像矢量化的可行性。

来源:SVG中国(ChinaSVG.COM)   [SVG中国专题计划文章]

   目的:设计并应用将中国可视人数据集中的图片转换为矢量图的算法。

  方法:设计一个算法,并按照此算法设计一个特定的程序,此程序的输出文件格式为Scalable Vector Graphics SVG,并在轮廓和色彩上比较原来位图和转换后的图形。

  结果:该算法可以对分割后图像进行理想效果的转化,对色彩梯度大的图像,该算法的复杂度会增加。结论该图像格式可以作为一个交换数据存在,对分割后图像有理想的转化效果。在现阶段各种可视化程序的分割机制不同有各种不同的中间文件格式,实施SVG格式标准有助于规范异构可视化平台的数据统一性。

1 图像的准备

  中国可视人图像数据集包含冰冻铣切图片以及分割后图片,这些图像有不同的分辨率和色彩和大小。在图片中各个器官的颜色有不同的反差。选取分割的头部图片,数据集的腹部图片,分割后单色图片以验证算法,图片图用256色、16位颜色值进行处理,算法图用java作为实现的语言,系统在Windows 2000 Server运行,机器配置:内存256M,CPU P4 1.4G,显示内存64M。为验证算法,在相同大小的位图和矢量图形下进行轮廓和色彩的对照。矢量图像格式的选取的问题上,可供选择的图像格式有DXF,SVG等。本实验图用了SVG图形格式,它是基于XML标记语言来描述二维矢量图型的一种图形格式,SVG由W3C制定,是一个开放标准。图像文件可读,易于修改和编辑与现有技术可以互动融合。例如,SVG技术本身的动态部分(包括时序控制和动画)就是基于SMIL标准。另外,SVG文件还可嵌入JavaScript脚本来控制SVG对象,SVG图形格式可以方便的建立文字索引,从而实现基于内容的图像搜索,SVG图形格式支持多种滤镜和特殊效果,在不改变图像内容的前提下可以实现位图格式中类似文字阴影的效果,可以用来动态生成图形。例如,可用SVG动态生成具有交互功能的地图,SVG技术细节SVG主要支持以下几种显示对象:矢量显示对象,基本矢量显示对象包括矩形、园、椭圆、多边形、直线、任意曲线等嵌入式外部图像,包括PNG、JPEG、SVG等以及文字对象,可以实现动态和交互功能。在DOM模型的基础上,SVG开发设计人员可以利用ECMAScript或者SMIL来进行时序控制或对象的操纵。

2 算法描述

  本文图用的图像矢量化流程图用以下步骤(见图1):第一步读取BMP文件包含文件头数据图像数据和颜色值并对图像进行修补;对bmp的颜色进行转换,转换到标准256色,在转换后对文件进行修补。第二步进行中心线的处理,图用Bezier曲线样条逼近,探索不同颜色值的趋势,图用以下循环来进行:寻找样条起点,样条逼近处理拐点及拐角、趋势拟合、根据趋势拟合误差、拟合条件拟合次数进行多次的逼近,并记录颜色值。第三步将趋势结果写入到SVG文件中。每一次拟合后的区域记录如下:

<path stroke=”none” fill=”#99b1b7" d=”M521 5L521 6L522 6L523 6L524 6L524 7L525 7L526 7L526 6L527 6L528 6L528 7L529 7L529 6L530 6L531 6L531 7L532 7L533 7L534 7L534 6L533 6L533 5L532 5L531 5L530 5L 529 5L 528 5L 527 5L 526 5L 525 5L 524 5L 523 5z?>

  每一次追踪就定义为一个路径(Path),将每一个路径写入成SVG文件。

图1 BMP图像矢量化流程图

  调节该算法的参数包含以下参数:

  1. 背景色(不进行拟合);
  2. 是否跟踪对象的中心线;
  3. 是否保持线的宽度;
  4. 是否对临近锐角进行处理;
  5. 位图使用的颜色数;
  6. 象素总是以某指定的角度下落角度;
  7. 当确定一个点是否是拐点时,我们认为该点任何一边有指定的象素点;
  8. 如果象素前后构成的角度比指定的角度小,我们认为是拐点;
  9. 修补位图的级别;
  10. 逼近曲线的误差;
  11. 逼近曲线反复的次数;
  12. 如果样条逼近直线(由曲线长度和重量定义的直线),我们把它作为直线处理;
  13. 象素端点和终点定义了一条直线,如果样条没有偏离出该直线超过指定的象素,我们把它当直线处理;
  14. 当计算一个点的切线时,我们认为该点任何一边有指定的象素点;
  15. 匹配线的粗细。通过调节该系统参数可以得到不同效果的图形。SVG图像可以在网上图用浏览器和Adobe公司插件SVG View进行显示和分析。

3 结果

  图用以上算法设计了一个转换程序,程序图用JAVA作为实现的语言,核心转换程序图用C语言实现。程序界面如图2,在实验中我们图用了不同的参数的调整,对已分割的大脑的效果图如图3,4,可以观察到由于图用了样条逼近的方法进行,边角的角度有一定的失真,空白空间的形体有一定的变化,但由于每一张图片都图用了相同的算法处理,可以保证所有图片的原始配准效果。

图2 应用程序界面

图3 大脑分割后图像(位图)


图4 大脑分割后图像转换为SVG图形

  腹部的图片的处理如图5,6,该图像的色彩复杂,在转化为256色后在SVG图像显示后明显缺少过渡的颜色,在放大后出现色彩失真,如果图用大于256色的算法,将导致SVG文件过大,本实验中图用的腹部BMP图片的大小为200KB而SVG文件大小为2MB,追踪的路径为1200多个,算法的复杂度大大增加,在大体轮廓上是完全追踪正确,但在细节的追踪上效果不理想,出现3个区域的色彩偏差。

图5 腹部断层图片(位图)
图6 腹部断层图片(SVG图形)

4 讨论

 

  目前在医学三维重建软件的设计中一个非常重要的步骤就是分割,编程人员对分割后的图像进行重新图样后可以进行重建,而中间的数据文件格式多种多样,这样就出现了许多的重复劳动,在一个软件中分割了的图像在另外一个软件中必须还进行重新的分割。图用一个较为稳定的算法来作为中间交换文件的文件格式,或者图用一个较为简单的算法来构建一个中间交换文件可以较少工作人员的工作量,SVG文件可以作为这样的文件存在,同时由于图用了XML文件格式,可以在图形中解析各种参数,比如:部位、解释、知识等内容,方便了图形的查找和抽提。SVG文件进行网页的交互是非常容易的,故探讨其在医学领域的应用有重要的意义。由实验结果可以得出以下结论,对于中国可视化人体数据集的图像进行处理的算法不能图用一个单一的算法,由于不同部位的图片的色彩位数不同,需要不同的参数设置和算法改进。对于分割后的图像由于色彩比较单一,可以达到非常理想的效果。此算法随着色彩位数的增加和色彩复杂度的增加其算法的复杂度倍增,在32位的图像,其处理时图像不但耗时,同时其渐变色彩的处理也出现欠缺,故对这种图像的处理,在非图形工作站的机器上运行,其结果是不理想的,对于复杂色彩的图像和较大的图像,图用矢量化的方法可以无限的逼近原来图像,而在PC机上实现方法仍然值得探讨。

5 关于作者

  邱全光,谭立文,李七渝,张绍祥:第三军医大学人体解剖学教研室,重庆市计算医学研究所,重庆,400038。

(THE END)

 

将要更新