原文链接:https://blog.safe.com/2018/07/fme-and-convolution-evangelist176/  卷积理论FME 2018.1增加了卷积的能力。 卷积是对两个对象进行数学运算,以便创建第三个对象。在FME术语中,第一个对象是栅格要素,第二个对象是类似栅格的数字矩阵。该操作可以是许多常见的数学运算之一。 使用指定的运算符,利用矩阵处理栅格,返回具有新质量的栅格要素。 理解了?OK,这是一个用于轻微模糊影像的矩阵: 
例如. 栅格#1(上图左) 加上矩阵,返回略微模糊的栅格#2(上图右)。 如果它有帮助,矩阵和操作的组合被称作“滤波”。所以你选择一个栅格文件,并对其应用滤波。一些人们还称之为“透镜”和“透镜处理”。 它实际做了什么? 如果你跟我一样,你会想知道到底发生了什么,因此我将深入了解一些细节。如果这不适合你,请跳到“FME中的卷积”部分。 还停留在这里?OK,所以发生的事情是滤波器遍历栅格中的每个单元,利用周围的值和矩阵的值,重新计算单元的新值。 举个例子,我们使用这个小方块的栅格数据,中心单元的红色波段值为218,使用模糊滤波: 
通过数字滤波器将值218转换为200。为什么?好吧,如果我的数学正确,等式为: 
例:在3×3中的每个单元乘以其对应的核并求和。然后除以核的总和16,得到中心单元的新值200。 基本上它是周围值的平均值,每个值通过核进行加权。因此,上述核给予中心单元最高权重(4),邻近单元中等权重(2),对角相邻单元给予低权重(1)。 对应用的栅格要素的每个波段、每个单元重复这个过程,产生期望的输出。计算只对原始值进行操作。当算法处理下一个单元(如上)时,它的邻近值为218,而不是200. 我相信“对应”的矩阵值是相反的(所以对于133*1,这里的“1”是矩阵右下角的值),但是这里的核矩阵是对称的,所以没有区别。 滤波类型 不同的滤波有不同的核以及不同的操作类型(一些为增加,一些为求平均值),所以会产生明显不同的效果。 我不知道为什么上述的过程产生模糊,但即使知道它通常如何工作也很重要。例如,它说明了模糊算法不是简单的降低分辨率(其他方法有可能是这样),而是通过操纵单元格颜色来创建模糊。 我注意到像上面的核,是一组正数,除数为这些值的总和。它们往往是模糊(平滑)滤波。但我也注意到具有负值的核: 
这些核值加起来得到一个除数。它们通常用于锐化图像或检测图像边缘。我相信(我不是专家)如果数字大于或小于0,当FME使用该滤波时,图像变暗或明亮。 无论如何,我认为这是我关于滤波和核值理论的知识极限。 让我们来看看它是如何在FME中实现的...... FME中的卷积FME中执行卷积的转换器是RasterConvolver。它的别名是RasterLensProcessor,对于快速添加,“nvo” 或 “rlp”是用于找到它的唯一代码。 RasterConvolver的参数对话框如下所示: 
顶部下拉选项显示了一组不同的预置滤波器: 
所以你可以使用它们中的任意一个对你的栅格数据进行处理,并产生一定的效果。例如,这有一个用于高程模型的线检测核。 选择一个固定滤波器会自动设置核、除数和操作字段。你只需要更改它们就可以创建自定义滤波器。说到哪… 自定义滤波器 我想创建一个自定义滤波器,例如模糊效果还不够,我希望一个更大的模糊。这很简单,我只需要编辑对话框中的值: 
这里我只更改了权重,并设置匹配的除数,虽然我可以设置一个不同的核大小或操作。顺便说一下,我们允许的核大小通常为3×3, 5×5, 7×7, 9×9, 和11×11。不允许非正方形核。 这些变化导致的结果(从左到右)原始—高斯滤波—用户自定义滤波: 
注意滤波使得底部文本逐渐不便阅读。放大后差异更明显: 
但是矩阵中的数字意味着什么。我所做的就是通过减少中心权重和增加周围的权重,将权重从中心转移到周围的单元上。除数现在为21,因为权重增加到21。为了保存这些数字,我还可以设置Divisor(除数)为特定设置“Sum of Kernel Weights”: 
我花了一些时间来研究和理解这个概念,我并不会觉得卷积就是这么简单。但是,很容易通过设置来进行试验,查看发生的情况,包括一些高级选项。 高级选项RasterConvolver有一些高级控制选项。它们的影响不大,但是可能很重要,这是我在这里提到它们的原因。 动态核函数 我把它们称为动态核函数,因为我想不出来其他的称呼了。实际上就是你可以通过属性、用户参数或条件值来设置核权重。通过把kernel size设置为“Derived from Weights”实现: 
现在我有一个文本字段而非网格来定义核值,可以有多种方法。这个参数接受空格分割的浮点数列表。只接受矩形核函数,但是你可以设置权重为0以避免使用某些单元格,并创建自定义形状。 边缘处理 关键的考虑是在图像边缘发生什么。如果每个新的单元格都使用它的邻近值进行计算,对于一侧没有邻近值的边缘单元格来说会发生什么?FME对此有相应的设置: 
当单元格缺失时,FME给你选项:使用Nodata值或将边界值扩展到空的区域。结果的差异(对于一个5×5的高斯滤波)如下:
这是西南角,所以查看左边和底部边缘。使用Nodata(左边的图像)似乎给出了更生硬的边界,边界线更清晰。扩展边界值给出了更柔和的边界。如果我想要进行边缘检测,我想我会首先尝试设置扩展值,否则栅格边框可能会被误解为边缘(我很可能是错的)。 Nodata 处理 说到Nodata,栅格中的Nodata值会发生什么取决于一组参数:Center Pixel和Neighbor Pixel: 
Center Pixel处理的场景为:待处理的像素值为Nodata。它可以输出为Nodata或忽略Nodata。相似的邻近像素如果为Nodata,可以被忽略,或使用中心像素值替换。如果你知道有Nodata值,我怀疑你只会忽略Nodata,大概这就是它是默认设置值的原因。 最后,一个不受参数控制的高级选项是对栅格特定波段进行卷积的能力;例如我想对RGB图像中的红、绿波段进行卷积,而不对蓝波段进行操作。为了做到这个,我只需要在RasterConvolver前添加一个RasterSelector,以便定义待处理的波段。 为什么要卷积?了解了这些,这个转换器的实际应用是什么? 首先它用于图像处理,例如模糊和锐化图像。你可能不觉得很有用,但是模糊(平滑)图像有助于隐藏噪声、产生细节。我们来看这个示例,我们希望定位海洋中船的位置,使用简单的高斯滤波: 
虽然我们要找的船更加模糊,但是卷积去除了水面上的极端反射。当我搜索在整个图像搜索亮点来找船时(使用RasterExpressionEvaluator),区别在于: 
没有卷积的图像具有上千个可能是船的亮点。卷积后的图像具有三个明显点。即使是船的尾迹也被清理干净了。 所以这样的核函数对于图像分类是有用的。除了在海上定位船舶外,它们还可以帮助你提取建筑区域,评估农业清单或模拟洪水影响。此外,一系列栅格图像可以显示随着时间的推移,船舶所在的位置,有助于追踪特定船舶的位置或它来自何处。甚至可以进行车辆监测和追踪!
从栅格图像中提取矢量几何图像是另外常见的需求。第一步通常是边缘检测,卷积对此也有用。RasterConvolver转换器又很多不同的边缘检测核。 我无法创建一个我非常满意的空间示例,但我确实发现它们也可以从先前的平滑例子中受益。该图像是各种非空间边缘检测的示例。 另外,如图所示,RasterConvolver不局限于图像。它也可以处理栅格DEM。例如,我找到一个生成坡度的核。我用它对我的数据进行处理,得到与RasterSlopeCalculator转换器(Percent Rise模式)相同的结果。为了清晰可见,转到Int8,它看起来如下所示: 
好吧,我说“完全”。它在Data Inspector中看起来完全一样,但是数字略有不同。我认为这两个结果只是在不同的尺度上。我将使用RasterSlopeCalculator作为最终的答案,因为它告诉我数字的含义(坡度百分比),而我不确定卷积的数字是否真正代表什么。但是,它显示了在DEM数据集上使用RasterConvolver你可以做的事情。 顺便说一下,我的工作空间是这样的: 
为什么有两个卷积?嗯,坡度/线检测在不同方向应用时会产生不同的结果。所以我用平行工作流将它应用到水平和竖直两个方向,然后使用RasterExpressionEvaluator将数据重新组合在一起以将其合并: 
我发现这个表达式比我最开始使用的对两个栅格取平均值更好。你可以在我们的knowledgebase找到例子。 总结Merriam-Webster告诉我,卷积来自同一个拉丁词(volvere,意为“滚动”)“convoluted”(意思是复杂的)。我相信这点!这个主题有点复杂和令人费劲! 但是,FME可以轻松选择预定义的卷积滤波器并尝试自定义滤波器。 我对于FME处理数据的速度印象很深。它只用了22秒对40个栅格瓦片(每个大小为1600 x 1000像素,具有3个波段)进行读取、卷积和写出。 我已经把我的两个示例放到我们的knowledgebase(边缘检测和坡度计算)并将很快放上第三个示例,你可能想进一步探索。总的来说有很多用户对这个转换器有需求,所以它应该会很流行。赶快下载FME2018.1并试试使用它。 同时我也注意到FME新的2018.1版本还介绍了RasterStatisticsCalculator 转换器,用于计算每个栅格波段或调色板的最小、最大、平均值等。我相信你会发现这个转换器同样非常有用。
本文转载来自CSDN作者:fmechina 版权归作者所有 原文链接:https://blog.csdn.net/fmechina/article/details/84098769?spm=1001.2014.3001.5501
|