西班牙
斯潘4
RasterConvalver变压器在 2018.1 +
光栅数据集中的边是值的强度突然更改的地方。边缘通常出现在区域或对象的边界,因此(对于空间数据)对于提取重要特征(例如植被区域的边缘)非常有用。
在FME中,使用rasterconvalver变换器,通过一个称为卷积的过程,可以检测出边缘。
卷积是在光栅特征和数字矩阵(内核)之间执行的数学运算。操作和内核的定义通常称为过滤器.
边缘的“方向”是从低强度部分向高强度部分。边缘可以主要以垂直或水平方向出现。因此,光栅卷积器允许用户从左到右、从右到左、从上到下或从下到上检测边缘。
如果光栅混合了边缘方向,或者主边缘方向未知,则可以检测所有四个方向的边缘,并将它们与ExpressionEvaluator合并。这个例子使用了这种技术。
这些示例的源数据是JPEG格式的光栅图像数据集。在FME数据检查器中,如下所示:
这张照片是温哥华一个地区的鸟瞰图,里面有一所学校。假设在这个练习中,我们希望确定学校场地上不同的表面和建筑物。
一启动FME工作台并打开提供的启动模板文件。此工作区读取图像数据和学校属性的粗略轮廓,用于将图像剪裁为:
在Workbench中启用功能缓存(运行>使用功能缓存运行)并运行工作区。检查剪裁结果:
二添加一个rasterconvalver变压器连接到Clipper:Inside端口。打开“参数”对话框以检查不同的筛选器类型。请注意,有四个称为Sobel的边缘检测过滤器:
选择Sobel Top并单击“确定”关闭“参数”对话框。运行工作区(或仅此部分)并检查输出。请注意,正在检测边缘。
然而,还有三种Sobel边缘检测滤波器,我们也应该尝试一下。
三。再加三个光栅卷积变压器。将它们中的每一个连接到来自剪辑器的新连接:内部端口:
将它们设置为使用不同的Sobel过滤器:Sobel Top、Sobel Bottom、Sobel Left、Sobel Right。
运行工作区(选择光栅转换器并按F6)。检查输出(选择光栅卷积变压器和按Ctrl+I)。
注意,每种类型的过滤器都添加了从不同方向查看边缘的信息。为了得到完整的结果,我们应该把它们合并在一起。
4.在画布上放置一个RasterExpressionEvaluator转换器,然后打开parameters对话框,不需要连接任何其他东西。
将模式参数设置为两个栅格:
在带表达式(s)字段中,将第一个解释设置为Red8。在表达式字段中输入:
@sqrt ([0] * [0]) + (B [0] * B [0]))
换句话说,我们将两个光栅的带零特性结合在一起。每个单元格的新值将是光栅A的值(平方)加上光栅B的值(平方)的平方根。
对第一和第二波段(Green8和Blue8)重复上述过程,每次改变表达式中的波段数:
@sqrt ([1] * [1]) + (B [1] * B [1])) @sqrt (([2] * [2]) + (B [2] * B [2]))
现在关闭参数对话框,并将前两个光栅卷积器输出连接到RasterExpressionEvaluator上的A和B输入端口:
注意,RasterExpressionEvaluator不允许同时处理所有四个栅格;因此,我们需要使用多个变压器。
5.复制现有的RasterExpressionEvaluator(复制/粘贴或Ctrl+D)。将它连接到第二组光栅卷积器:输出端口。因为表达式是完全相同的,所以不需要更改参数。
现在再次复制一个RasterExpressionEvaluators。这次将它连接到现有的rasterexpressionevaluator的结果端口:
现在运行工作区并检查第三个RasterExpressionEvaluator的结果:
我们可以看到表面和建筑物的边缘,但图像中也有相当多的噪音。
6.在Clipper和每个现有的光栅卷积变压器之间添加一个光栅卷积变压器(为了快速添加,在输入光栅卷积变压器名称之前,请单击Clipper上的绿色输出端口箭头):
打开参数对话框,设置卷积滤波器类型为Blur: Gaussian 5
重新运行工作区并再次检查最终的输出。虽然表面的边缘有点模糊,但图像中的噪音要小得多。
7.如果您更喜欢带有黑色轮廓的白色图像(而不是带有白色轮廓的黑色图像),那么打开最后一个RasterExpressionEvaluator的参数对话框。将表达式改为:
255 - (@sqrt (([0] * [0]) + (B [0] * B [0]))) 255 - (@sqrt (([1] * [1]) + (B [1] * B [1]))) 255 - (@sqrt (([2] * [2]) + (B [2] * B [2])))
对于一个8位的光栅,255减去这个值就得到一个倒立的图像。
您还可以在工作空间的末尾添加一个光栅解释器强制转换器,以使颜色成为标准灰色。将“目的地解释类型”选项设置为Gray8和选项“转换颜色的颜色”到投.
重新运行工作区。最后的输出将是白色背景上的黑线:
您现在可以使用这些轮廓(在手动或自动过程中)来确定学校财产的表面和建筑物。
结果的质量在很大程度上取决于图像具有清晰和定义良好的边界,区域之间的强度差别很大。
例如,用户试图定义停靠在码头上的容器的边缘:
不幸的是,强度差异最大的边缘是容器阴影;因此,当容器隐藏在背景表面时,阴影有最清晰的边缘定义。
我想你可以尝试很多方法。它可能和使用rastertopolygoncourter转换器一样简单(可能后面跟着一个DonutHoleExtractor)。还有其他使用Potrace的解决方案(请参见https://knowledge.亚搏在线safe.com/articles/53522/raster-to-cad-using-potrace.html)我也是。这些方法的前身是使用RasterCellValueReplacer或RasterExpressionEvaluator之类的转换器来清理数据(例如,如果单元格值小于128,则设置为0;如果单元格值大于128,则设置为255)。
我希望这能有帮助。如果您对这些流程有任何疑问,请将其发布到此处的论坛,我们(包括Safe和FME社区)将乐于提供帮助。亚搏在线亚搏国际在线官网
?2019安全亚搏在线软件公司|合法的