1

请允许我从一个最简单的任务开始这个问题:如果我有四个点是一个矩形的顶点,存储在一个 4x2 矩阵中,我怎样才能把它变成一个矩形窗口?(请不要使用任何特定于绘制矩形的特殊命令,因为矩形被升起只是为了表示一般类的规则几何对象)

让事情变得更复杂,假设我有一个 nx2 矩阵,我怎样才能连接所有的 n 个点,使它成为一个多边形?请注意,对象不一定是凸的。我认为主要困难在于,R 怎么知道哪个点应该与哪个点连接?

我问的原因是我正在对一条鱼进行一些图像处理,我设法通过在 python 中使用 opencv 找到轮廓来获得鱼的身体线条,并将其输出为 nx2 csv 文件。当我将 csv 文件读入 R 并尝试使用 sp 包中的 SpatialPolygnos 将其转换为多边形时,发生了一些非常意外的行为;中间某处似乎有一个中断,多边形被切成两半,即多边形的边界没有连接。无论如何我可以解决这个问题吗?

谢谢你。

编辑:有人好心地指出,这可能是另一个问题的重复:在 R 中绘制多边形。但是,该问题的解决方案依赖于绘制的形状是凸的,因此按天使排序是有意义的;然而,这里的形状不一定是凸的,它不会起作用。

4

1 回答 1

1

您是否希望它成为一个 spatstat 研究区域(属于 class owin),因为您在那里有 spatstat 标签?在这种情况下,您可以只使用owin(poly=x)where xis your nx2 矩阵(当然在加载 spatstat 库之后)。该矩阵中的行应该包含多边形的顶点,按照您希望它们连接的顺序(这就是 R 知道哪个点与哪个点连接的方式)。有关详细信息,请参阅帮助(owin)。

于 2015-07-27T00:32:43.063 回答