MATLAB 是否具有内置函数来查找定义为(非整数值)点列表的多边形的质心和惯性矩等一般属性?
regionprops 对整数值点执行此任务,假设这些点表示图像中像素的索引。但我能找到的唯一处理非整数点列表的函数是 polyarea 和 inpolygon。
我现在的任务是创建一个 bwconncomp 结构,其中所有点乘以某个较大的值(例如 10,000),然后将其输入到 regionprops,但想知道是否有更优雅的解决方案。
MATLAB 是否具有内置函数来查找定义为(非整数值)点列表的多边形的质心和惯性矩等一般属性?
regionprops 对整数值点执行此任务,假设这些点表示图像中像素的索引。但我能找到的唯一处理非整数点列表的函数是 polyarea 和 inpolygon。
我现在的任务是创建一个 bwconncomp 结构,其中所有点乘以某个较大的值(例如 10,000),然后将其输入到 regionprops,但想知道是否有更优雅的解决方案。
我不知道 MATLAB 中有一个函数可以为您执行此操作。
但是,poly2mask可能对您创建像素掩码以馈入 regionprops 有用。我还建议,如果您决定走这条路,请仔细测试离散化对结果的影响程度,这样您就不会创建疯狂的大型数组(并浪费时间)而不会真正提高准确性。
您应该在MathWorks File Exchange上查看HJ Sommer提交的POLYGEOM。看起来它具有您想要的所有属性测量值,以及描述代码中使用的公式的精美文档。
一种可能性是将计算外包给Java 拓扑套件。我不知道“惯性矩”,但它至少有一个质心方法。