python - 用python测量图片中物体之间的距离

标签 python image processing measurement

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

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]

最佳答案

您可以获得正方形边界的列表(不是正方形......)

>>> 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/

相关文章:

python - 如何从 Python3 中包含具有特定索引和列的列表的字典创建 Pandas DataFrame?

php - 我想为图像区域提供绿色和红色

java - 为什么我的 Java 程序没有从 Arduino 获取串行信息?

Python csv切断列的部分内容

python - 代码仅显示从临时数组到二维数组的最新输入?

python - 使用列表理解交换行和列

ios - ios中如何根据方向改变图像位置?

image - 如何在 Flutter 中捕获 404 图像 URL 的 FetchFailure 异常?

java - 如何通过纯 Java 使用 P2D、P3D、FX2D?

java - 多态 PApplet 处理 NullPointerException