如何使用R获得图像中的彩色编码区域?

时间:2015-12-23 10:44:10

标签: r pixel area spatstat

嗨R世界专家, 假设我有一个生成强度贴图的点图案,并且该贴图在像素图像中的3个区域中进行颜色编码....我怎样才能得到颜色编码区域?

这是一个使用spatstat的例子:

library(spatstat)
japanesepines
Z<-density(japanesepines); plot(dens) # ---> I create a density map
b <- quantile(Z, probs = (0:3)/3) # ---> I "reduce it" to 3 color-ceded zones
Zcut <- cut(Z, breaks = b, labels = 1:3); plot(Zcut)
class(Zcut) # ---> and Zcut is my resultant image ("im")

提前谢谢你 孢菌

2 个答案:

答案 0 :(得分:0)

我不确定您之后的情况,但您可以使用table()功能计算每种颜色的像素数。

table(Zcut[[1]])

答案 1 :(得分:0)

在您的具体示例中,计算区域非常容易,因为您使用quantile来剪切图像:这有效地将图像划分为相同大小的区域,因此应该有三个区域大小为1/3因为窗口是一个单位正方形。一般来说,要计算因子值图像中的区域,您可以使用as.tesstile.areas(继续您的示例):

Ztess <- as.tess(Zcut)
tile.areas(Ztess)

在这种情况下,面积为0.333313,这必须归因于离散化。