繁体   English   中英

如何将以下坐标转换为“匀称”多边形?

[英]How to convert the following coordinates to 'shapely' polygon?

我有以下格式的列表中的坐标:

[572.71063 453.9848  622.2049  472.86023]

其中四个数字分别对应一个矩形的 X1, Y1, X2, Y2 坐标。 (X1,Y1 左上角,X2,Y2 右下角)。

我想将列表项转换为“匀称”多边形。 列表项的格式不正确,在这种情况下,Polygon 可以工作。 所以我使用了以下功能

brd = Polygon(map(np.squeeze, bb))

这没用。 我认为矩形坐标的问题实际上不是轮廓格式。 我认为轮廓应该是接近的。

我可以将列表中的矩形坐标转换为形状多边形的最佳方法是什么?

如果我理解问题,你只需要这个:

rect = [572.71063, 453.9848, 622.2049, 472.86023]

X1, Y1, X2, Y2 = rect

polygon = [(X1, Y1), (X2, Y1), (X2, Y2), (X1, Y2)]

编辑:

最小工作代码:

from shapely.geometry import Polygon
import matplotlib.pyplot as plt

rect = [572.71063, 453.9848, 622.2049, 472.86023]

X1, Y1, X2, Y2 = rect

polygon = [(X1, Y1), (X2, Y1), (X2, Y2), (X1, Y2)]

p = Polygon(polygon)

x, y = p.exterior.xy

plt.plot(x, y)
plt.show()

结果:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM