FME:简单快捷的遥感影像文字水印技术

       现在的测绘公司数据交流日益增多,有偿购买的就不说了,尤其是无偿使用的,用过就可以轻松的拷贝留下一份,这样就会造成数据外泄,影响数据安全,各公司都会想办法保证自己的数据安全,比如栅格数据添加水印(太乐地图),矢量数据坐标加偏等(高德、百度)。本文的主旨就是通过FME提供的各种转换器实现遥感影像批量快速水印技术。

       本文的技术思路就是先获取影像矢量范围,然后对范围进行分割,再为每块数据添加文字,文字栅格化,最后再与原影像叠加运算,生成水印影像。因为博主是第一次发博文,并且好多转换器也是第一次使用,所以有不正确的还请指正,大家共同学习,下面直接详细步骤+截图:

    一、影像坐标投影转换

  先将影像坐标投影成平面坐标是为了以后参数计算的方便,如果影像本身就是平面坐标或者习惯十进制度坐标计算的可以跳过此步骤。我先通过CoordinateSystemExtractor获取影像坐标,方便最后输出的时候再把坐标转回来,再用Reprojector投影成自己想要的平面坐标系,截图如下:


  二、影像矢量范围获取

    此过程中用到4个转换器RasterBandNodataSetter、RasterBandNodataRemover、RasterPropertyExtractor和RasterExtentsCoercer,分别用来将0值设为Nodata值、移除Nodata值、提取栅格属性信息、矢量范围提取。前两个是为了去除黑边,第三个提取的属性信息后面会用到,第四个才是获取矢量范围,截图如下:


  三、分割范围及中心点提取

  用Tiler按尺寸大小将范围分割成瓦片,尺寸大小可自己设置,这一步直接决定了水印的排列密度;因为影像范围的不规则可能会分割出小面,可以根据面积用Tester筛选掉,然后再提取每个瓦片的中心点:


  四、添加文字

  1.首先用TextAdder将步骤三中的瓦片中心点替换成想要的文本,即想要的水印文字。参数如下:


  2.再用TextStroker将文本转换成矢量要素,碎化几何类型可以是面或者轮廓线,不同的类型最后可以产生不同的水印效果,这里我选的是轮廓线;字体参数决定了水印的字体,这里特别要注意字体名称参数的选择,如果是汉字,WritingSystem一定要选择中文简体,不然生成的要素会是一堆问号,文本填充和文本宽度乘数默认就行,参数如下:


  五、文字栅格化及栅格计算

  完成上边转换后,水印文字已基本成型,在将文字添加到影像上之前,需要先将文字栅格化,这里需要用到ImageRasterizer转换器,博主试了几次都没有转成功,后来查资料才发现ImageRasterizer使用的时候需要有fme_color字段,值得格式为0,0,0(代表RGB三色数值,取值范围0-1),可以直接AttributeCreator添加;后经过几次测试发现这个值是决定水印透明度的关键因素,所以在使用的过程中可发布出来调整水印透明度大笑

      fme_color字段创建完后,就可以使用ImageRasterizer转栅格了,参数就要用到步骤二里提取的栅格属性,相元大小和四至范围设置成和原影像一样,背景值为0并设为Nodata值,反锯齿设为Yes,参数设置如下:


        用RasterBandNodataRemover移除文字栅格的背景值后文字的栅格化就完成了,接着将原始影像与文字栅格进行叠加运算以得出最终成果,需要使用到RasterCellValueCalculator转换器,博主也尝试过使用RasterMosaicker,但是没有透明的效果,所以改用RasterCellValueCalculator,其中操作选择的是相元相加,相乘会使水印太亮,相减又太暗,这个看个人爱好吧,到此为止整个的影像水印添加工作就完成了,以下是生成的效果图和总流程图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值