2015-12-23 40 views
2

嗨R世界专家, 假设我有一个点模式,可以生成一张强度图,并且这张地图是在一个像素图像的3个区域中进行颜色编码....我怎么能得到颜色编码区域?如何使用R获取图像中颜色编码的绘图区域?

这里有一个例子使用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") 

预先感谢您 孢

+0

我实际上想计算每种颜色的像素面积 – saccente

回答

0

我不完全相信你以后,但你可以计数的像素数每种颜色都使用table()函数。

table(Zcut[[1]]) 
0

在您的具体的例子是很容易计算的领域,因为你用quantile削减图像:这有效地将图像划分成大小相等的区域,所以应该有尺寸1/3的三个方面因为窗户是一个单位正方形。一般来说,从一个因素值图像计算面积,你可以使用as.tesstile.areas(继续你的例子):

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

在这种情况下,区域是0.333313,它必须是由于离散化。