gpt4 book ai didi

c++ - 找到 "how straight"是一个形状。打开简历

转载 作者:行者123 更新时间:2023-11-28 02:31:08 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我有一组轮廓(每个代表一条潜在线),我想检查轮廓/形状的“直度”。我用作引用的文章使用了以下技术:

它匹配一条穿过形状的“分段”线,就像这样- enter image description here

然后对线的“直”程度进行评分。

这是我正在处理的轮廓示例:

enter image description here

您将如何实现这项技术?是否有任何其他方法来检查“How Straight”是一个轮廓\形状?

问候!

最佳答案

我的第一个猜测是使用 coefficient of determination .也就是说,假设有一些合理的原点,在您不会收到舍入误差的情况下,为您的所有点拟合一条直线并计算 R^2。

一种更高级的方法,如果所有轮廓都是断开的组件,则计算 structure model index (该链接用于骨形态测量,但他们解释了这个概念并引用了原始论文。)这给了你一个数字,告诉你你的节段有多少“像一根杆子”。不过,这只是一个想法。任何形成曲线或有分支的东西都会越来越不像杆。

我想说的是,这还取决于您使用度量的目的,以及您的轮廓是否通常总是从左到右移动。


另一种方法是创建 covariance matrix你的点,计算该矩阵的特征值,并取它们的比率(比率大于或等于 1;否则,反转比率。)这是 PCA 背后的基本原则。除了最后的比例。如果你有一个相当线性的数据集(数据集只在一个方向上变化)那么你将有一个非常大的比率。随着数据集变得越来越不线性(或越来越不相关),您会看到比率接近 1。一个完美的线性数据集将是无穷大和一个完美的圆(我相信,但如果有人能为我验证这一点,我将不胜感激。)此外,在二维中工作意味着计算将在计算上便宜且直接。

这可以很好地处理异常值,并且不会随轮廓的旋转和形状变化。您还有一个始终为正的数字。唯一的问题是在划分两个特征值时防止溢出。话又说回来,您总是可以将较小的特征值除以较大的特征值,并且您的指标将限制在 0 和 1 之间,1 是一个圆,0 是一条直线。

无论哪种方式,您都需要测试此参数是否对您的应用足够敏感。

关于c++ - 找到 "how straight"是一个形状。打开简历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28972222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com