【发布时间】:2017-03-23 11:14:20
【问题描述】:
我有以下一维数组:
[0, 0, 0, 1, 0, 0, 16, 249, 142, 149, 189, 135, 141, 146, 294, 3, 2, 0, 3, 3, 6, 2, 3, 4, 21, 22, 138, 95, 86, 110, 72, 89, 79, 138, 14, 18, 18, 18, 12, 15, 21, 22, 11, 20, 26, 90, 62, 128, 94, 117, 81, 81, 137, 7, 13, 14, 6, 10, 8, 11, 10, 13, 21, 18, 140, 69, 147, 110, 112, 88, 100, 197, 9, 20, 5, 6, 5, 4, 7, 10, 21, 32, 42, 56, 41, 156, 95, 112, 81, 93, 152, 14, 19, 9, 12, 20, 18, 14, 21, 18, 18, 14, 91, 47, 43, 63, 41, 45, 43, 85, 15, 16, 14, 10, 11]
我可以看到尖峰所在的模式。所以我想把上面的数组分组如下:
[[0, 0, 0, 1, 0, 0, 16], [249, 142, 149, 189, 135, 141, 146, 294], [3, 2, 0, 3, 3, 6, 2, 3, 4, 21, 22], [138, 95, 86, 110, 72, 89, 79, 138]....so on]
我尝试使用 K 均值,即均值和标准偏差的某种组合。但是它们都没有导致这种分组。请帮忙!
编辑: 这些数据是沿 x 轴的灰度图像的暗像素值在 y 轴上的总和。较高范围组代表书写行,较低范围组代表空白行。这意味着,我想将图像上的书面行和空白行分开。所以有一个模式。书写的线条将具有相同的宽度,即它们的组长度将相同。由于背景噪音,空白行可能会突然出现尖峰。但总的来说,手动,我可以看到书面和空白行的模式。我想要它以编程方式。
【问题讨论】:
标签: python numpy scipy python-imaging-library image-segmentation