我想檢索形成形狀邊界的點的 xy 坐標。類似問題的答案建議使用凹殼。在此
顯然紅點不是邊界點。有些被其他點包圍,它們都與原始點不同。如何根據原始點定義邊界點?請指教
uj5u.com熱心網友回復:
當我嘗試重現您的代碼時,convexHull 函式可以完美運行。我更改了您的代碼,以便黑色和紅色圓圈的位置以相同的方式四舍五入。我減小了紅色圓圈的半徑,這樣你就可以更好地查看一切是否合適。
import numpy as np
import matplotlib.pyplot as plt
from scipy import spatial
xy = np.loadtxt('xy.txt')
x, y = xy[:, 0].astype('float64'), xy[:, 1].astype('float64')
hull = spatial.ConvexHull(xy, incremental=False, qhull_options='Qt')
hull_indices = hull.vertices
boundary_x = []
boundary_y = []
for i in range(len(hull_indices)):
index = hull_indices[i]
boundary_x.append(xy[index, 0].astype('float64'))
boundary_y.append(xy[index, 1].astype('float64'))
plt.plot(x, y, 'o', color='black', markersize=6)
plt.plot(boundary_x, boundary_y, 'o', color='red', markersize=4)
plt.show()
結果:

更新:如果您也需要邊界的凹入部分,您可以改用 python 包
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484224.html
上一篇:生成方差為1/n的隨機IID數
下一篇:Python部分匹配的資料幀差異
