执行栅格降噪和边缘平滑处理?


22

我有这样的光栅图像光栅图像

我想删除孤立的噪点并平滑边缘(比如说白色的单点,并且我希望实体的边缘看起来平滑)。如何在ArcGIS或R中做到这一点?

像元大小为30 * 30。

Answers:


15

为这种处理创建了形态运算ExpandShrink 使用ArcGIS(或GRASS或Mathematica),因为其R“栅格”库太慢。


通常,对参数进行一些试验会有所帮助:您必须确定清洁图像所需的扩展程度和收缩程度;通常情况下,您希望做得尽可能少,因为每次操作都会使一些尖锐的细节变得平滑。这是一个序列,可以很好地消除许多明显的“噪音”,同时又保留了“实体”中的大部分细节。“ 膨胀”和“收缩”都是相对于白细胞而言的,因此膨胀使它们向外生长,而收缩使黑细胞侵入白色区域。

图像表

“差异”列使用颜色突出显示每个步骤在开始和结束图像之间的差异:蓝色代表黑色变成白色,橙色代表白色变成黑色。

如果需要删除较大的剩余部分,最好使用RegionGroup进行识别,然后再通过重新分类将其删除。这是当初的选择,但有一点初步清理ExpandShrink减少工作,并提供所需的平滑。


顺便说一句,我选择使用Mathematica命令制作此图中的八幅图像,因为它们是如此简单,容易且快速地执行:

i = Import["http://i.stack.imgur.com/umDg7.png"];
l = Dilation[k = Erosion[j = Dilation[i, 2], 3], 1];      (* This does all the work *)
delta = ColorCombine /@ {{i, j}, {j, k}, {k, l}, {i, l}}; (* Compares images *)

ArcGIS中的工作流程相同,但语法更长。如果确实要使用R,请加载“栅格”库并利用focalFilter其创建函数来进行扩展和收缩。然后分别等待约一分钟以执行操作...。


你好!如果您不介意,可以将您的联系信息发送给我吗?我想在研究中感谢您。谢谢!@whuber
看到

您知道GRASS中的等效命令吗?
理查德

1
@Richard我敢肯定,GRASS中有很多创造性的方法可以执行这些操作,但是r.neighbors看起来很适合这项任务。
ub

12

使用Spatial Analyst Extension,您可以使用某些Generalization工具。它们中的一些执行相似的任务,因此您可能需要尝试一些才能获得想要的结果。但是,我将看一看“ 多数过滤器”工具和“ 边界清理”工具。

这是有关这两个工具的概念的页面

我不确定如何在R中执行这些任务,但是这里是有关如何使用GRASS GIS执行多数过滤器的文章。


2

这基本上是@whuber答案的一种变体,它使用欧几里得距离来扩展和收缩栅格边界,以平滑栅格的尖角,而该锐角由扩展-收缩过程扩大,该过程利用像元的数量来增长/侵占。尽管欧几里得距离模仿扩展,但是不可能将负值引入到侵犯/收缩中。诀窍是开发一个迭代过程,以获取欧几里得距离栅格的负值并进行增长。以下是给定样本图像和快照的步骤,以进行澄清。

  1. 重新分类栅格以仅保留1s(白格)

  2. 将欧几里德距离应用于两格距离(在这种情况下为60米)到重新分类的栅格

  3. 通过使用Reclassify(具有该值的像元将获得NODATA且NODATA将变为1)或扩展计算器的Con和IsNull运算符来获取扩展栅格的负数。

  4. 再次以相同的距离(60 m)将Euclidian距离应用于该负栅格

  5. 通过遵循上面给出的相同过程来消除此负面影响

  6. 使用栅格计算器或重分类将NODATA像元在此栅格中分配为0,以返回到样本栅格的原始值

扩大收缩欧几里得距离

扩大和缩小欧几里得距离

注意:绿色显示已处理的单元格(问题中的白色单元格)

Euclidian Distance的优点在于,它通过斜边范围与每个像元之间保持适当的距离,从而平滑了否则的尖锐边缘。另一方面,扩展和收缩工具的像元参数数量会在所有方向上处理相同数量的像元,这会产生类似边界框的边缘,因此过度泛化了边缘/角。

但是,主要问题是,它不能像扩展/收缩那样成功地消除噪声,并且比答案更长。


对于使用GRASS / QGIS进行此操作的任何人,您都可以使用r.grow并以正的欧几里德距离增长,然后以负的欧几里德距离
增长
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.