本帖最后由 jingjing 于 2021-6-7 15:28 编辑
引言 在本系列文章的第二部分中,我描述了为原始图件创建一张好的扫描图或照片的必要信息和准备工作。本部分中,我将讨论如何准备和放大扫描图,以创建尽可能好的数字化线。 处理步骤 典型的纸至数工作流程包括下面的步骤,本部分讨论第三步至第六步(黑体显示): 1.清理纸质图件 2.扫描 3.裁剪 4.地理定位,校准,以及(可选的)尽可能准确的投影图件 5.放大和清理扫描的图件 6.矢量化(数字化) 7.导入目标软件 8.清理线 9.连接,标注,和赋属性,以及(可选的)如果是三维工作环境的话赋高程。 工作流程——由图像到数字化线 将一张图像转化成数字化线包含以下步骤: 第三步:裁剪 使用照片编辑软件(如Photoshop, Paint.net或GIMP)中的裁剪工具,可以很轻松的把图片中的地图区域裁剪出来。裁剪不仅移除了图片中的空白边缘;同时也使文件更小(处理起来更迅速),并且避免矢量化人员沿阴影或扫描仪窗口创建无意义的线。 一定要保留可能在边缘的坐标标签——你需要使用它们进行地理定位。 第四步:地理定位和校准 地理定位的时候只有两件重要的事情需牢记: 一幅相对较新并且保存良好的地图可能仅需要少量的控制点,和低阶多项式变换来校准。相反,一张老旧、变形的地图,或通过拍照提取的地图,就需要更多控制点。取决于地图中变形的数量,你可能需要使用高阶多项式(如立方)或高级变换(如薄片样条函数)来校准——记住高阶多项式方法需要更多控制点来获得一个解决方案。别不好意思添加控制点——在某些地图中我曾使用过超过50个控制点(图1)。 图1. 地理定位和校准前(上图)和后(下图)的一张地图(挂在墙上用智能手机拍摄),黄色方块表示控制点 在QGIS(一款免费软件)中地理定位和校准地图: 1.选择光栅|地理定位|地理定位或点击地理定位工具栏按钮,显示地理定位窗口; 2.在地理定位窗口,选择文件|打开光栅或点击打开光栅工具栏按钮,选择要地理定位的图片; 3.提示时,选择目标坐标系统,或点击取消不设置坐标系统; 4.点击添加点按钮,添加已知坐标的控制点; 5.在对话框底部的空格里输入每个点的已知坐标; 6.重复此步骤,输入所有其它所有控制点;定义完控制点,就可以将其保存,然后校准图片: 7.作为备份,点击保存地理定位控制点将创建的控制点保存; 8.点击转换设置按钮,定义转换和输出设置,记住三阶多项式(立方)和薄片样条函数转换法需要的控制点数目比其它方法更多; 9.点击开始地理定位按钮创建校准后的图片。 对严重变形的图片来说,选一个合适的转换方法可能很难。对比各种方法的平均误差(状态栏会显示)是一种方法,尽管误差小并不总意味着结果好。一种更可靠的方式是,用不同方法校准图片,然后和其它质量可靠的数据同时显示,或至少和叠加的坐标网格一起显示。错误最少、总体吻合最好的那种方法就是你应当选用的。 尽管我把地理定位列在了放大前面,请牢记:当你用照片编辑软件打开拥有内部地理定位标题的文件时(如GeoTIFF),它们会丢失原有的地理定位信息。为避免这个问题,一定记得创建一个可以应用到放大后图片的外部地理定位标题(如TAB,world,aux.xml文件)。或者,在地理定位前简单的放大图片。 第五步:放大和清理图片 本步骤需要用照片编辑软件如Photoshop,Paint.net或GIMP等完成,或者在第六步中用矢量化软件完成。我比较偏爱照片编辑软件,因为它能让我更好的控制结果,特别是对于老旧、褪色的地图。 清理一张事先放大过的纯黑白图片相对简单多了。因此需要把放大放在清理之前。 放大 整洁、相对现代的纸质地图的高品质扫描件,通常只需要稍微、甚至不需要放大,一步简单的“自动色阶”调整通常就足以去除可能困惑矢量化人员的不均匀现象。地质图、老旧地图、很差光线下拍摄的地图的扫描件就完全不同了。在这种情况下,你必须在图片转给矢量化人员之前放大它们。 由于每张图片都是独特的,所以没有涵盖全部情况的单一流程。因此我为放大环节提供了一份独立的文档(稍后推出)。 图2. 放大前(上)和后(下)的准备矢量化的地图(与图1同一张照片) 从容的做这一步,别忙着继续下一步,探索几种不同的放大方式。通过正确方法放大的图片,矢量化后仅需要少量的清理(图2);不放大或应用了错误的放大方法,会生成一堆像“鸟窝”一样的随机线,其结果甚至比让你手动数字化还要糟糕。 清理 这回的清理步骤需要用橡皮擦工具或画笔工具。你不需要清理整张地图;只需集中注意那些接触你想矢量化的线的对象。例如,打印标签可能穿过了一条线,或某人可能在地图的重要部分写了字。你必须将接触原始线的任何对象擦除,并且保持线原封不动,使矢量化人员更清楚的看到,如图3所示。现在清理远比在矢量化后的版本上做更高效。 图3. 清理前(上)后(下)的一张图 孤立的、不接触重要线的污点和标记更容易在矢量化版本中删除,此处您尽管放心的忽略它们:比起在图片中用橡皮擦小心的擦除每个像素,你更容易点击并删除一条矢量化的线。(至少在Micromine中是这样,在GIS软件中稍复杂) 第六步:矢量化(或数字化) 尽管在本系列文章中,我集中讨论的是自动矢量化;但必须意识到的是,这不是一剂可以让你的图件魔法般变成漂亮数字化线的良方。根据实际地图,手动屏幕数字化仍然是最高效的方法。 屏幕数字化的优势包括: - 快速:(屏幕)矢量化在数秒内创建整幅地图,而不是像数字化输入板那样需要数小时、甚至数天。
- 轻松:编辑已有的线通常比创建更轻松,这意味着你可以把这项工作安排给技能稍弱的操作员。
缺点包括: - 预处理:矢量化很大程度上强调事先放大图片,这可能会超出现有人员的技能。
- 隐藏的复杂性:清理一张有大量多余线的地图有时可能比数字化输入板上描图还费时间。
矢量化还是数字化? 那么,你将怎么在矢量化和数字化之间选择?安全的方法是在地图中选一小块“普通的”区域做个测试。为同一区域创建矢量化和数字化版本然后对比二者所费的时间和结果的精确度。由于速度和精确度常常矛盾,你会发现最高效的方法是在二者之间做一个平衡:不选最快的,也不选最准确的。 “如果你只想创建线而不担心细节,矢量化会毫无悬念的胜出。生成线几乎是即时的。屏幕数字化没有捷径可走——要么完美、要么什么也没有” 我比较偏爱尽可能频繁的矢量化,尽管我时不时的需要从地图中删除一些矢量化的线并把它们数字化。 如果你只想创建线而不必担心例如清理、连接和设置属性之类的细节,矢量化会毫无悬念的胜出。那样地理定位和放大图片将是仅有的耗时步骤;如果操作软件很熟练,你只需要花几个小时。生成线的过程几乎是即时的。屏幕数字化没有捷径可走——它要么生成完美的结果、要么什么都没有。 如果你很不幸拿到了一张不能矢量化的地图——甚至在放大、清理完毕后也是这样,那你只能求助于屏幕数字化。典型的例子是老式的用深色图案或花纹填充的地质图,如图4所示。 图4. 大量的颜色填充和标签使得这张地质图几乎不可能被矢量化 软件 矢量化软件的工作方式是检测图片的边缘和边界然后用矢量线追踪它们。其创建的内容包括三类: - 点:根据孤立的深色像素创建点
- 多段线:沿着深色的像素创建多段线
- 多边形:根据连续颜色定义的区域创建多边形
一些矢量化软件可以选择从一张图片中创建点、多段线和多边形,而另一些只能创建某种特定类型。此处列出了一些有名的商业软件和它们支持的类型: - WinTopo Pro:仅支持多段线。低成本(有功能缩减的免费版)
- ArcScan:多边形和多段线。(在ArcGIS10.1和更新的版本中免费包括)
- TNT MIPS:多边形和多段线(限制功能的免费评估版本)
- R2V:拥有众多高级选项的多边形和多段线(限制功能的免费评估版本)
下述免费开源软件可以用OSGeo4W安装器一起安装: - GRASS:点,多边形和多段线,但是有复杂的分阶段工作流程
- QGIS:仅支持多边形
- SAGA:仅支持多边形
矢量化 上述软件的操作流程极为不同:从很简单的(Wintopo)到很复杂的(GRASS)。我就从最简单的WinTopo讲起吧。而且,其免费版本可以让你尝试,并且没有输入输出文件大小限制。 用WinTopo矢量化简单到就像是在打开图片(通过文件|打开图片),然后点击一键矢量化按钮。正如你可能期望的,软件能识别地理定位并且会把创建的矢量放在正确的位置上。当然,你也可以试验其其它多种功能;如果你第一次尝试不能得到理想结果的话,这是必要的。 一旦你用WinTopo生成了一组像样的矢量,将其保存(通过文件|保存矢量为)为Micromine或你的地理信息系统软件识别的格式,例如ESRI的Shape格式文件或MapInfo交换格式。避免DXF格式,那样会使文件变得特别大。 结论 这一部分描述了最重要阶段的各步骤:调整图片并将其矢量化。方法你已经知道了: - 将图像裁剪到地图区域,聚焦于数据,减少浪费在无效像素上的时间和空间;
- 准确的地理定位和校准图像对保证线在正确位置至关重要;
- 通过正确的图像放大生成的矢量数据仅需要少量的清理工作;
- 有些图像无法被矢量化;以及
- 矢量化软件区别很大,从复杂程度到支持的对象类型。
在第四部分中,我们将讨论如何把矢量化软件生成的半成品线转化成最终成果,使其适用于勘探项目或生产矿山的平面布置。 (待续)
|