python alphashape_python – 估计由一组点生成的图像区域(Alpha形状??)

好的,这是个主意. Delaunay三角剖分将产生不加区别的大三角形.它也会有问题,因为只会生成三角形.

因此,我们将生成您可能称之为“模糊Delaunay三角剖分”的东西.我们将所有点都放入kd树中,对于每个点p,查看它的k个最近邻点. kd树让这个快.

对于这些k个邻居中的每一个,找到到焦点p的距离.使用此距离生成加权.我们希望附近的点比更远的点更受青睐,所以这里指数函数exp(-alpha * dist)是合适的.使用加权距离建立概率密度函数,描述绘制每个点的概率.

现在,从该分布中抽出很多次.将经常选择附近的积分,而不太经常选择更远的积分.对于绘制的点,记下为焦点绘制的次数.结果是加权图,其中图中的每条边连接附近的点,并根据选择对的频率进行加权.

现在,从权重太小的图表中剔除所有边缘.这些是可能没有连接的点.结果如下:

现在,让我们将所有剩余的边缘扔到shapely.然后我们可以通过缓冲它们将边缘转换为非常小的多边形.像这样:

使用覆盖整个区域的大多边形来区分多边形将产生用于三角测量的多边形.可能还要等一下.结果如下:

最后,剔除所有太大的多边形:

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt

import random

import scipy

import scipy.spatial

import networkx as n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python alphashape是一个Python库,用于生成不规则形状Alpha形状Alpha形状是一种将云集合转换为有界不规则多边形的方法,它通过控制形状的平滑级别来调整形状的复杂度。Python alphashape基于Delaunay三角测量算法,以找到形状的边界。 使用Python alphashape可以进行以下步骤: 1. 导入库:首先需要导入alphashape库,可以使用以下命令进行导入: ``` import alphashape ``` 2. 创建云:通过创建一个包含的列表或从现有的云数据源中获取,来创建云对象。每个都可以用一个二维或三维坐标来表示。 3. 创建Alpha形状:通过将云对象传递给AlphaShape()函数来创建Alpha形状。可以使用以下语法: ``` alpha_shape = alphashape.alphashape(points) ``` 4. 调整形状的平滑度:可以通过调整Alpha形状中的Alpha参数来控制形状的平滑度。较小的Alpha值将会得到更复杂的形状,而较大的Alpha值将会得到更简单的形状。 5. 可视化Alpha形状:可以使用Matplotlib库来可视化生成Alpha形状。可以使用以下代码进行可视化: ``` import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.scatter(*zip(*points), alpha=0.7) for simplex in alpha_shape.simplices: ax.plot(*zip(*alpha_shape.points[simplex]), 'k-') plt.show() ``` 通过上述步骤,我们可以使用Python alphashape生成Alpha形状并将其可视化。这对于处理不规则形状云数据非常有用,例如地理空间数据、图像分析等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值