Scipy:凸包的质心

2024-01-21

如何使用 python 和 scipy 计算凸包的质心?我找到的只是计算面积和体积的方法。

问候,弗兰克。


假设您已经使用以下方法构建了凸包scipy.spatial.ConvexHull,返回的对象应该具有点的位置,因此质心可能很简单,

import numpy as np
from scipy.spatial import ConvexHull

points = np.random.rand(30, 2)   # 30 random points in 2-D
hull = ConvexHull(points)

#Get centoid
cx = np.mean(hull.points[hull.vertices,0])
cy = np.mean(hull.points[hull.vertices,1])

您可以绘制如下,

import matplotlib.pyplot as plt
#Plot convex hull
for simplex in hull.simplices:
    plt.plot(points[simplex, 0], points[simplex, 1], 'k-')

#Plot centroid
plt.plot(cx, cy,'x',ms=20)
plt.show()

scipy凸包基于Qhull,应该有方法中心,来自Qhulldocs http://www.qhull.org/html/#structure,

中心是小平面超平面上的一个点。 AN 中心是面顶点的平均值。如果每个中心都低于相邻面的超平面,则相邻面是凸面。

哪里的centrum http://www.qhull.org/html/qh-impre.htm与简单面的质心相同,

对于具有 d 个顶点的单纯面,质心相当于质心或重心。

由于 scipy 似乎没有提供此功能,因此您可以在子类中定义自己的外壳,

class CHull(ConvexHull):

    def __init__(self, points):
        ConvexHull.__init__(self, points)

    def centrum(self):

        c = []
        for i in range(self.points.shape[1]):
            c.append(np.mean(self.points[self.vertices,i]))

        return c

 hull = CHull(points)
 c = hull.centrum()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scipy:凸包的质心 的相关文章

  • 为什么从 Pandas 1.0 中删除了日期时间?

    我在 pandas 中处理大量数据分析并每天使用 pandas datetime 最近我收到警告 FutureWarning pandas datetime 类已弃用 并将在未来版本中从 pandas 中删除 改为从 datetime 模块
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • 安装了 32 位的 Python,显示为 64 位

    我需要运行 32 位版本的 Python 我认为这就是我在我的机器上运行的 因为这是我下载的安装程序 当我重新运行安装程序时 它会将当前安装的 Python 版本称为 Python 3 5 32 位 然而当我跑步时platform arch
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • Pandas 日期时间格式

    是否可以用零后缀表示 pd to datetime 似乎零被删除了 print pd to datetime 2000 07 26 14 21 00 00000 format Y m d H M S f 结果是 2000 07 26 14
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解

随机推荐

  • 与 Console.ReadLine() 相关的 RabbitMQ BasicConsume 和事件驱动问题

    下面的程序基本上是来自 C Rabbit MQ 教程中的 Receiver Worker 程序的程序 https www rabbitmq com tutorials tutorial two dotnet html https www r
  • Windows Phone 7 应用程序 - 方向更改

    各位开发者大家好 我正在开发一个 Windows Phone 7 应用程序 我无法弄清楚我认为对于经验丰富的人来说这是一个简单的问题 假设我有一个由两个元素组成的布局 一个列表框 填充了大量的项目 和一个文本块 为用户提供一些基本说明 当设
  • 什么是“表达问题”?

    我对这是什么有一个粗略的想法 但如果有人对 表达问题 有他们认为简洁直观的解释 我很想听听 Watch 这个想法是 您的程序是数据类型和对其进行操作的组合 该问题要求一种实现 允许添加类型的新情况和新操作 而不需要重新编译旧模块并保持静态类
  • Spring Bootrabbitmq连接超时问题

    我的 Spring Boot 应用程序抛出连接超时错误 并且永远无法连接 我看到的另一个有趣的问题是 它永远不会获取 Spring 应用程序属性中定义的连接超时属性 org springframework amqp AmqpTimeoutE
  • 将 Pivot xml 输出转换为不带 xml 的表格输出

    我有以下类型的表 ID Key Value 1 A aa 2 B bb 3 A ay 4 C cc 5 B bx 6 C ct 我需要输出 A B C aa bb cc ay bx ct 当我将 PIVOT 与子查询一起使用时 它不起作用
  • Scala / Dotty - 将特征混合到现有对象中

    有没有办法将特征混合到 Dotty 或 Scala 中的现有对象中 class SomeClass trait SomeTrait This works but it s not what I m looking for new SomeC
  • 在java中不使用任何循环打印1到10[重复]

    这个问题在这里已经有答案了 可能的重复 无循环或条件地显示从 1 到 100 的数字 https stackoverflow com questions 2044033 display numbers from 1 to 100 witho
  • 如何停止运行 Vim 宏

    我将一个宏记录到一个寄存器中 并以太多的重复次数开始它 完成每个宏需要很长时间 如何取消 停止 Vim 执行宏 有没有办法在不终止编辑器进程的情况下完成此操作 以下是我遵循的步骤 录制宏到寄存器1 我运行了1000次 1000 1 现在等待
  • C# 4.0中OptionalAttribute和可选参数有什么区别

    我正在研究别人的代码 有一个这样的方法 public SomeClass DoSomething string param1 Optional DefaultParameterValue string optional 为什么有人会使用这些
  • 本地化字符串比较

    有什么区别NSString s localizedCaseInsensitiveCompare and localizedStandardCompare 方法 我阅读了参考资料 但不知道该使用哪一个 localizedCaseInsensi
  • PHP OOP 数据库问题

    我正在使用 DB 类中的 get 函数从数据库查询用户名 即使数据库中存在用户 它也总是返回 无用户 这是我的 DB php
  • 如何旋转 ImageView?

    我想在我的 Activity 中以编程方式旋转 ImageView 目前我找不到任何适用于 Xamarin 的解决方案 并且 Android 的翻译解决方案也不起作用 有人知道如何旋转 ImageView 吗 例如 这段代码只是给了我一个
  • 如何在Android中使用Java邮件将应用程序电子邮件同步到服务器电子邮件?

    我想同步更改电子邮件应用程序中的更改 然后自动更改服务器电子邮件中的更改 例如 我已阅读电子邮件应用程序上的未读消息 然后自动服务器电子邮件将未读邮件更改为已读邮件 我的电子邮件应用程序使用邮件 jar 文件 activation jar
  • Airflow dags 生命周期事件

    我正在尝试通过java后端管理气流dags 创建 执行等 目前 在创建 dag 并将其放入气流的 dags 文件夹中之后 我的后端不断尝试运行 dag 但在气流调度程序接收到它之前它无法运行它 如果 dag 的数量较多 这可能需要相当长的时
  • Eslint:函数体括号的换行规则(类似于 object-curly-newline)?

    我希望函数体的括号有新行 const fn gt new line here new line before 同样适用于function We have https eslint org docs latest rules object c
  • 如何在elasticsearch启动时加载索引模板文件?

    在elasticsearch v1 5中 索引模板可以放置在templates目录下的配置位置 path conf 中elasticsearch config templates 但是 我发现升级到v2 3或v5 3后 这个模板将不会被加载
  • 获取Datalist中选定的项目值

    我在数据列表中使用 ImageButton 并希望将所选项目值存储在变量中以进一步处理它 如何在单击按钮时获取数据 我需要的数据是 Productid 名称 价格等 有什么帮助吗 数据列表的代码是
  • 具有单字母扩展名的 C++ 头文件有什么特别之处?

    C 标准在第 16 2 节 源文件包含 中包含以下规则 它以某种方式使单字符文件扩展名变得特殊 该实现应为由一个或多个组成的序列提供唯一的映射非数字 or digits 2 11 后跟一个句点 和一个单一的nondigit 第一个字符不能是
  • WPF TreeView 虚拟化

    我正在尝试弄清楚这个虚拟化功能 我不确定我是否理解错误或发生了什么 但我正在使用 ANTS 内存分析器来检查虚拟化 TreeView 中的项目数 并且它只是不断增加 我有一个包含 1 001 个项目 1 个根项目 1000 个子项目 的 T
  • Scipy:凸包的质心

    如何使用 python 和 scipy 计算凸包的质心 我找到的只是计算面积和体积的方法 问候 弗兰克 假设您已经使用以下方法构建了凸包scipy spatial ConvexHull 返回的对象应该具有点的位置 因此质心可能很简单 imp