我有一张图片,其中的正方形表示为 numpy 数组。正方形的宽度和水平位置是可变的,但颜色是固定的。我如何计算Python中这些(蓝色)方 block 之间的宽度和距离?
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]
最佳答案
您可以获得正方形边界的列表(不是正方形......)
>>> 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]
相同:您可以考虑对行进行求和或平均以消除一些噪音。
关于python - 用python测量图片中物体之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27454040/