【发布时间】:2021-03-05 16:11:07
【问题描述】:
我有一个光栅:
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中实现这个。
欢迎任何替代解决方案。
【问题讨论】:
-
“对象”是什么意思?所有这些绿色像素的值都是 1。当您标记它们时,顺序是否重要?例如,可以将数字 1 分配给底部像素而不是左上角的像素吗?
-
我非常松散地使用术语“对象”。在这里,我只想将相邻像素组重新分类为不同的值。标记它们的顺序无关紧要。只要非常“对象”有自己的唯一 ID。
标签: r object-detection raster edge-detection