我有来自图像处理程序的数据,我需要将它们拼凑起来。我的图像数据最初是显微镜载玻片上的 18 个(6 x 3)孔阵列,我需要对这些孔进行一致的编号,以便以后可以识别每个孔中的内容。我有孔的近似 x 和 y 位置(以像素为单位),我想从左到右然后从上到下(似乎最简单)对它们进行排序,并将它们编号为 1 到 18。
像这样:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 5 6
[2,] 7 8 9 10 11 12
[3,] 13 14 15 16 17 18
警告:
- 并非所有孔都被图像处理程序拾取,因此有时少于 18 个。
- 并非同一行或同一列中的所有孔都在完全相同的 x 或 y 上,它们似乎在 20-40 像素内浮动。
- 并非所有图像都以同一点或完全相同的放大倍率为中心,因此良好的位置不足以可靠地对范围进行编码。
数据示例:
Well BBXLeft BBYTop
1 0 39 637
2 1 43 1218
3 2 596 630
4 3 610 1212
5 4 1161 633
6 5 1164 1207
7 6 1710 623
8 7 1715 1202
9 8 2267 620
10 9 2271 1199
11 10 2824 617
12 11 2845 1197
13 12 35 57
14 13 593 53
15 14 1709 45
16 15 2262 41
17 16 2820 38
或以可复制的形式来自dput
:
wells <- structure(list(Well = 0:16, BBXLeft = c(39L, 43L, 596L, 610L,1161L, 1164L, 1710L, 1715L, 2267L, 2271L, 2824L, 2845L, 35L, 593L, 1709L, 2262L, 2820L), BBYTop = c(637L, 1218L, 630L, 1212L, 633L, 1207L, 623L, 1202L, 620L, 1199L, 617L, 1197L, 57L, 53L, 45L, 41L, 38L)), .Names = c("Well", "BBXLeft", "BBYTop"), class = "data.frame", row.names = c(NA, -17L))
图像分析程序中的井出现故障 此示例缺少井 #15(如果从 0 开始计数,则缺少 14)
理想的输出将是一个带有左右、上下井号(甚至“战舰”坐标)的新列
抱歉,如果这是一个家庭作业问题,但我真的不知道如何有效地做到这一点,而无需对截止点进行硬编码。我使用 R 是因为它是我掌握的唯一语言,并且我已经准备好围绕这个问题编写其他代码。