如何按R中的像素计数线段出现次数?

bph

我试图通过显示网格中每个像素的交叉数来传达2D空间中线的集中度。我正在描绘类似于密度图的东西,但是单位更直观。我被spatstat包及其线段类(psp)吸引住了,因为它允许您通过其端点定义线段并将整条线合并到计算中。但是,我正在努力找到正确的功能组合来统计这些计数,并且希望您提出任何建议。

如下面的示例(每行50条)所示,density函数在(0,140)中生成值,pixellate函数计算通过每个像素的总长度,并在(0,0.04)中获取值,而as.mask生成是否为一条线穿过每个像素。我希望看到标度采用整数值(例如0..10)的东西。

require(spatstat)  
set.seed(1234)  
numLines = 50  

# define line segments
L = psp(runif(numLines),runif(numLines),runif(numLines),runif(numLines), window=owin())

# image with 2-dimensional kernel density estimate
D = density.psp(L, sigma=0.03)  

# image with total length of lines through each pixel  
P = pixellate.psp(L)  

# binary mask giving whether a line went through a pixel  
B = as.mask.psp(L)  

par(mfrow=c(2,2), mar=c(2,2,2,2))
plot(L, main="L")  
plot(D, main="density.psp(L)")  
plot(P, main="pixellate.psp(L)")  
plot(B, main="as.mask.psp(L)")

pixellate.psp函数使您可以选择指定要在计算中使用的权重。我考虑过尝试对像素进行归一化处理,以使每个交叉点的像素计数为1,但是权重唯一地应用于每条线(而不是特定于线/像素对)。我还考虑过为每行计算一个二进制掩码并添加结果,但是似乎应该有一种更简单的方法。我知道您可以沿一条线采样点,然后按像素对点进行计数。但是,我担心正确采样,以使像素的每条线交叉只有一个点。

在R中是否有简单的方法可以做到这一点?否则,这将是对将来的软件包增强的适当建议吗?使用其他语言(例如python或matlab)更容易完成此操作吗?

上面的示例和我的测试是使用x86_64-w64-mingw32上的spatstat 1.40-0,R 3.1.2。

埃格·鲁巴克(Ege Rubak)

您完全正确的认为这是将来的改进。它将在spatstat的下一版本中完成。pixellate.psp计算交叉线的数量而不是测量总长度可能是一种选择

现在,您必须做一些令人费解的事情,例如:

require(spatstat)  
set.seed(1234)  
numLines = 50  

# define line segments
L <- psp(runif(numLines),runif(numLines),runif(numLines),runif(numLines), window=owin())

# split into individual lines and use as.mask.psp on each
masklist <- lapply(1:nsegments(L), function(i) as.mask.psp(L[i]))

# convert to 0-1 image for easy addition
imlist <- lapply(masklist, as.im.owin, na.replace = 0)
rslt <- Reduce("+", imlist)

# plot
plot(rslt, main = "")

穿过每个像素的线数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R按组计数元素的出现次数

来自分类Dev

按Javascript数组中的出现次数(计数)排序

来自分类Dev

按数组中的出现次数进行计数和排序

来自分类Dev

MYSQL的出现次数按两列中的值进行计数

来自分类Dev

计数DataFrame中的出现次数

来自分类Dev

计数列中的出现次数

来自分类Dev

按出现次数进行计数和排序

来自分类Dev

按名称计数出现次数

来自分类Dev

R中的出现次数和直方图图表计数

来自分类Dev

R中按GroupID分组的值出现次数

来自分类Dev

计算值出现的次数,按R中的id分组

来自分类Dev

SQL:如何计算TableA中的出现次数,与TableB联接,然后按出现次数排序?

来自分类Dev

如何计算列表中的出现次数,然后按出现次数降序排序?

来自分类Dev

如何按日期计算对象数组中的出现次数

来自分类Dev

如何在mysql中按日期获取值出现的次数

来自分类Dev

联接3个表(按用户在帖子中的出现次数进行计数)

来自分类Dev

R-计数值之前的出现次数

来自分类Dev

jQuery计数数组中的出现次数

来自分类Dev

计数CSV中重复出现的次数?

来自分类Dev

如何在不使用for循环的情况下计算图像中像素强度的出现次数?

来自分类Dev

按因子和时间间隔计数出现次数

来自分类Dev

MySQL按组将出现次数计数为列值

来自分类Dev

R:如何计算某个值在矢量中已经出现的次数(或该值左侧出现的次数)?

来自分类Dev

按出现次数返回表中的值

来自分类Dev

在文件中按出现次数编号

来自分类Dev

计算R中的出现次数

来自分类Dev

如何按顺序注册ID和出现次数(或次数)?

来自分类Dev

在R中,对于所有列,计数因子/字符出现的次数,按键分组

来自分类Dev

如何在Git存储库中按作者计数每个文件路径名的提交次数?

Related 相关文章

  1. 1

    R按组计数元素的出现次数

  2. 2

    按Javascript数组中的出现次数(计数)排序

  3. 3

    按数组中的出现次数进行计数和排序

  4. 4

    MYSQL的出现次数按两列中的值进行计数

  5. 5

    计数DataFrame中的出现次数

  6. 6

    计数列中的出现次数

  7. 7

    按出现次数进行计数和排序

  8. 8

    按名称计数出现次数

  9. 9

    R中的出现次数和直方图图表计数

  10. 10

    R中按GroupID分组的值出现次数

  11. 11

    计算值出现的次数,按R中的id分组

  12. 12

    SQL:如何计算TableA中的出现次数,与TableB联接,然后按出现次数排序?

  13. 13

    如何计算列表中的出现次数,然后按出现次数降序排序?

  14. 14

    如何按日期计算对象数组中的出现次数

  15. 15

    如何在mysql中按日期获取值出现的次数

  16. 16

    联接3个表(按用户在帖子中的出现次数进行计数)

  17. 17

    R-计数值之前的出现次数

  18. 18

    jQuery计数数组中的出现次数

  19. 19

    计数CSV中重复出现的次数?

  20. 20

    如何在不使用for循环的情况下计算图像中像素强度的出现次数?

  21. 21

    按因子和时间间隔计数出现次数

  22. 22

    MySQL按组将出现次数计数为列值

  23. 23

    R:如何计算某个值在矢量中已经出现的次数(或该值左侧出现的次数)?

  24. 24

    按出现次数返回表中的值

  25. 25

    在文件中按出现次数编号

  26. 26

    计算R中的出现次数

  27. 27

    如何按顺序注册ID和出现次数(或次数)?

  28. 28

    在R中,对于所有列,计数因子/字符出现的次数,按键分组

  29. 29

    如何在Git存储库中按作者计数每个文件路径名的提交次数?

热门标签

归档