如何解决在 R 中计算二进制光栅图像中的对象
我有一个光栅:
r <- raster(ncol=10,nrow=10)
set.seed(0)
values(r) <- runif(ncell(r))
我从栅格中选择前 10% 并更改为二进制:
r_10<-r[[1]]>=quantile(r,.90)
从此子集栅格 r_10
中,所有绿色像素都具有相同的值 1。我想更改这些值,方法是将像素或像素组标识为对象并使用新 ID 标记每个新对象。新栅格应具有与此示例图像类似的值:
某些对象可以有多个像素,并且它们都应该具有相同的对象 ID(例如数字 8)。
如何在 R 中编写代码?我想使用某种边缘检测或 Sobel 过滤器,但无法弄清楚。
这里有一个类似的 post,不一样,但它在 python 中,我需要在 R 中实现。
欢迎任何替代解决方案。
解决方法
我确信有多种方法可以回答这个问题(计算机视觉和 GIS)。这是针对手头问题的 GIS 解决方案(找到 here):
[9,2,3,4,5,6,8] => 2
[4,4] => 3
这是一个 shapefile 现在,但对我来说它很好。也可以随时将其转换回光栅。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。