【发布时间】:2020-05-03 12:53:04
【问题描述】:
我的问题是在here 讨论的内容以及我在那里得到的建议之后提出的。
我从七个设备(每个设备,一个响应像素传感器的 XY 矩阵;想想一个 CCD 相机)获取数据。每个设备的尺寸为 X:1024 像素,Y:512 像素。数据被结构化为单独的事件(即时间戳),其中每个事件都有许多此类像素处于活动状态。每个像素的XY位置由每个设备中Pix关键字后面的两个数字表示。
此类事件的示例,其中 7 台设备中只有 6 台具有活动像素:
=== 169139 ===
Start: 4.80374e+19
End: 4.80374e+19
--- 1 ---
Pix 9, 66
--- 2 ---
Pix 11, 31
Pix 12, 31
--- 3 ---
Pix 17, 53
Pix 16, 53
Pix 16, 54
--- 4 ---
Pix 44, 64
--- 5 ---
Pix 49, 133
Pix 48, 133
--- 6 ---
Pix 109, 143
Pix 108, 143
Pix 108, 144
Pix 109, 144
由于论坛中前面提到的问题,我现在能够为 6 台设备中的每台分离并绘制一个 2D 直方图,显示活跃的像素和位置。
我事先不知道每个事件中有多少平面处于活动状态,哪些像素将处于活动状态以及设备中有多少。
接下来我想做的是为每个平面的这些像素的不同形状制作一个“出现频率”。如果一堆相邻的像素是活动的,它们被称为一个簇。这种分类的一个例子:
因此,对于上面给出的事件示例,您会发现:
- 形状 ID 0 出现 2 次(设备 1 和 4)
- 形状 ID 1 出现 2 次(设备 2 和 5)
- 1 次出现形状 ID 6(设备 3)
- 形状 ID 12 出现 1 次(设备 6)
第一个分类将基于每个设备的线路数。这将很好地指示每个设备的活动像素数(未考虑的情况:如果同一设备的两个区域在同一事件中触发活动像素)。
对于事件中的一行(意味着一个像素处于活动状态),我可以直接将其归为数字 0 类别。 对于两条线,我可以查看左/右(或上/下)相邻像素并检查它是否处于活动状态并将其分类为事件 1(或 2)。
对于 3 像素的情况,我有点不确定如何检查。基本上,我会取该设备出现 Pix 的第一个值,但我怎么知道它是 3 个活动像素中的哪一个?
另外,如何在 Python 中“分类”事件?我在想一本形状字典。并且某些功能会检查以将特定事件分配给这样的形状。这是如何在字典中实现的?
【问题讨论】:
标签: python matrix cluster-analysis pixel