給定一個多邊形列表,我試圖找出所有不同的非重疊區域的邊界。相交多邊形的非重疊區域的邊界
polygon_lst = []
for xyloc in xylocs:
polygon_lst.append(Polygon(xyloc))
這與this類似的問題。不過,我得到一個錯誤,當我運行unary_union操作:
from shapely.geometry import LineString
layer = polygon_lst
rings = [LineString(list(pol.exterior.coords)) for pol in layer]
from shapely.ops import unary_union, polygonize
ERROR:shapely.geos:TopologyException: found non-noded intersection between LINESTRING (103.333 327.917, 103 328) and LINESTRING (104.2 327.2, 103 328) at 103.00000000000006 328
我都試過,我創建相互重疊的頂部的所有多邊形的面具一種替代方法。然後,我嘗試通過Canny檢測器提取不同的區域,並在opencv中找到Contour函數。然而,由這種方法產生的邊界是連接的(不是每個不同區域的邊界)而且是非閉合的。
會是什麼,我可以去尋找這些非重疊區域及其邊界的好辦法?