使用python测量图片中对象之间的距离

时间:2014-12-13 00:05:20

标签: python image processing measurement

我有一张正方形表示为numpy数组的图片。正方形的宽度和水平位置可变,但颜色是固定的。我如何计算python中那些(蓝色)方块之间的宽度和距离?

squares

numpy_array [1]包含图片数组: [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 195 196 202 204 207 203 201 216 219 223 228 233 235 237 239 236 235 233 233 233 232 232 234 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 239 241 239 240 239 241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 4 1 1 2 87 93 93 93 93 93 93 93 93 47 1 2 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199]

1 个答案:

答案 0 :(得分:2)

您可以使用

获取正方形边界的列表(不是方形...)
>>> da = np.where(np.abs(np.diff(a)) > 100)
>>> da
(array([120, 254, 375]),)

您可以通过以下方式计算所需的距离和宽度:

>>> da = np.insert(da, 0,0)
>>> da = np.append(da, len(a))
>>> np.diff(da)
array([120, 134, 121, 165])

如果您的数据有噪音(看起来如此),您可能需要调整阈值100。如果我了解你,a与你问题中的numpy_array[1]相同:你可以考虑对行进行求和或平均以消除一些噪音。