我正在尝试使用python创建一个三角形网格。 我知道边界点,我认为delaunay方法更合适。 我试过用scipy。代码非常简单
from scipy.spatial import Delaunay
pixelpoints = np.transpose(np.nonzero(binaryImage))
tri = Delaunay(pixelpoints)
import matplotlib.pyplot as plt
plt.triplot(pixelpoints[:,0], pixelpoints[:,1], tri.simplices.copy())
plt.plot(pixelpoints[:,0], pixelpoints[:,1], 'o')
plt.show()
但我不想要这个。我想在图像边界内进行网格划分。另外,我不想在洞内进行网格划分。 我可以控制覆盖表面的三角形数量吗? 有没有其他方法可以做到这一点?
谢谢。
答案 0 :(得分:0)
您可以使用Polygon.IsPointInside(tCentroid)
轻松删除其他三角形,其中tCentroid
是三角形质心。 IsPointInside()
可以通过以下方式导出:http://geomalgorithms.com/a03-_inclusion.html。
答案 1 :(得分:0)
Triangle程序满足了这两个需求:将三角形精修到指定的大小,并删除多边形外部或孔中的三角形。似乎有python interface浮动:API描述了如何指定孔和最大三角形面积。