地图矢量化方法初探
<p>以下为本人在工作实践中对矢量化进行的探讨,经过使用完全能够满足要求,请大家试试。申请加精。</p><p>地图矢量化方法初探 </p><p class="txt14"></p><p class="txt14"></p><p class="txt14"></p><p class="txt14">对于原有地形资料进行数字化管理已成为趋势。由原有图件数字化不外乎两种方法,一种是利用数字化仪进行数字化,误差来源定向误差,采集误差等,这种方法在八九十年代曾流行一时,但由于投资较大,误差较高,很少有人再使用;另一种方法为将图件扫描成栅格图象,并利用光栅矢量混合编辑软件如GTX、AutoCAD Overlay等来转变成矢量数字图形。但是GTX、AutoCAD Overlay为较专业的软件,每套需要上万元人民币,并不是一般个人或偶尔使用人的可以购买的。本人通过AutoCAD 2000建立光栅矢量混合文件进行数字化形式,即省去了投资购置数字化仪,精度不高,又无须花大量资金购置专业光栅矢量混合软件。步骤如下: </p><p class="txt14">一,扫描图件成光栅图 </p><p class="txt14">可利用Photoshop等工具进行处理,分辩率不宜低,但太高会增大文件体积,推荐300-500即可。并对图形进行简单处理,比如修剪多余部分图象等。 </p><p class="txt14">二,利用AutoCAD 2000插入栅格图像 </p><p class="txt14">进入AutoCAD 2000后,执行“插入/栅格图象”,在“image manager”对话框内,点击"attack"按钮,而后双击要加入的图象,并指定图象的插入点坐标、比例、旋转角加入图象,插入后,可利用“修改/实体/图象”下相应菜单,“修改/实体/裁剪边界”和“工具/显示次序”来进行相应操作。图象的一个单位一般相当于原图件一个厘米。 </p><p class="txt14">三,定向 </p><p class="txt14">利用以下Autolisp程序,通过对图象平移,旋转,放缩,使其定向: </p><p class="txt14"></p><p class="txt14">(defun c:dingxiang () </p><p class="txt14">;(setq wucha (getreal"请输入允许检核点位误差:");可据要求调整 </p><p class="txt14">(setq wucha 0.001 </p><p class="txt14">real_wucha </p><p class="txt14">1 </p><p class="txt14">) </p><p class="txt14">(print "请选择要定向图形:") </p><p class="txt14">(setq image_sel (ssget) </p><p class="txt14">image_p1 (getpoint "请输入第一定向点:") </p><p class="txt14">) </p><p class="txt14">(while (and (> real_wucha wucha) (/= image_p1 nil)) </p><p class="txt14">(setq ordi_p1 (getpoint "请输入第一定向点坐标:") </p><p class="txt14">image_p2 (getpoint "请输入第二定向点:") </p><p class="txt14">ordi_p2 (getpoint "请输入第二定向点坐标:") </p><p class="txt14">move_dist (list (- (car ordi_p1) (car image_p1)) </p><p class="txt14">(- (cadr ordi_p1) (cadr image_p1)) </p><p class="txt14">) </p><p class="txt14">image_angle (angle image_p1 image_p2) </p><p class="txt14">ordi_angle (angle ordi_p1 ordi_p2) </p><p class="txt14">rota_angel (- ordi_angle image_angle) </p><p class="txt14">bili (/ (distance ordi_p1 ordi_p2) </p><p class="txt14">(distance image_p1 image_p2) </p><p class="txt14">) </p><p class="txt14">) </p><p class="txt14">(command "move" image_sel "" move_dist "") </p><p class="txt14">(command "rotate" image_sel "" ordi_p1 rota_angle) </p><p class="txt14">(command "scale" image_sel "" ordi_p1 bili) </p><p class="txt14">(setq image_p3 (getpoint "请输入检核点:") </p><p class="txt14">ordi_p3 (getpoint "请输入检核点坐标:") </p><p class="txt14">real_wucha (/ (distance image_p3 ordi_p3) </p><p class="txt14">(distance ordi_p1 ordi_p2) </p><p class="txt14">) </p><p class="txt14">) </p><p class="txt14">(if (> real_wucha wucha) </p><p class="txt14">(setq image_p1 </p><p class="txt14">(getpoint "定向误差超限请输入第一定向点<回车结束定向>:" </p><p class="txt14">) </p><p class="txt14">) </p><p class="txt14">(print "定向完毕!!!") </p><p class="txt14">) ;if </p><p class="txt14">) ;while </p><p class="txt14">) ;defun </p><p class="txt14"></p><p class="txt14">四,进行跟踪数字化 </p><p class="txt14">利用多次开窗平移等方法,采点时尽量选取线条象素的中心位置,使线条的颜色与光栅图线条颜色不一致,更容易发现误差,及时纠正。 </p><p class="txt14">以上方法利用AutoCAD 2000与一个小型扫描仪(投资约1000-2000元),就可能轻松完成一些小图件的数字化成图,只要定向采点时放大窗口,仔细认真,精度是能够达到的,即节约了投资,又保证了质量。 </p><p class="txt14"><br/></p><br/> 当然最好还是用现成的破解的矢量化软件可以实现的,请大家讨论,提出自己的观点。vp我觉得挺好的。 市场上的不很好用,我用自己开发的工具,快多了。 “我用自己开发的工具,快多了”能不能分享一下啊??
页:
[1]