问题标签 [shapely]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4264 浏览

python - 在 OpenCV Grabcut python 中同时使用 rect 和 mask

我在 Windows 上的 Python 中使用 OpenCV 3 alpha。我有一种背景减法方法,可以使用抓取工具进行图像分割。所以我有 MOG 检测器,它可以为我提供一些关于可能的前景和背景的信息。因此,例如这里是当前图像(为可视化而给出的矩形)。

输入图像

这是 MOG 检测器的输出。

在此处输入图像描述

我想将此信息输入 cv2.grabcut。我希望我不需要分割整个图像,并且指定已知对象周围的区域并传递可能的前景和背景会更快(?)。斑点存储为形状匀称的多边形,其边界为 xmin,ymin,xmax,ymax

这总是给我一个黑色的图像。所有背景。

当我使用 cv2.GC_INIT_WITH_MASK 初始化时,它可以正常工作(请忽略红色方块)。然而,它肯定会忽略矩形,因为有时它包括矩形边界之外的估计前景(在这种情况下未显示)。

在此处输入图像描述

我存储的 rect 错误吗?不是 x,y,w,h 吗?指定一个矩形实际上会使其更快还是我应该裁剪图像?

0 投票
1 回答
1452 浏览

numpy - 删除 Shapely 多边形之外的 numpy meshgrid 点

我有一个 10 x 10 的网格,我想删除形状多边形之外的点:

这是结果图: 原图

我希望最终结果看起来像: 结尾

我知道我可以将数组重塑为 100 x 2 的网格点数组:

我可以轻松查看该点是否位于多边形内:

但我无法获取这些信息并修改原始网格

0 投票
1 回答
3777 浏览

python - 如何使用 Shapely 在 Python 中添加两个多边形?

我不知道如何使用 Shapely 在 Python 中添加两个多边形。

通过添加我的意思是,例如,如果我添加两个高度为 4 和宽度为 2 的正方形,并且它们具有相同的坐标,它应该返回一个高度为 8 和宽度为 2 的正方形。

我尝试使用 MultiPolygons 并在两个多边形之间使用联合,但我无法获得所需的累积高度结果。

有人知道怎么做我描述的吗?或者是否有任何其他 Python 模块可以让我做同样的事情?

0 投票
3 回答
45679 浏览

python - 计算两个矩形之间的重叠面积

在此处输入图像描述

我想计算红色和蓝色矩形之间的重叠区域“灰色区域”。

每个矩形由其四个角坐标定义。重叠区域的结果单位是单位正方形。

我无法想象我该怎么做?

任何有创意的评论将不胜感激。

0 投票
1 回答
783 浏览

python - 计算线与线串的交点并使用 shapely 定义线串段

这两个对象是使用LineStringfrom创建的shapely.geometry

我可以使用 找到交点Line1_string.intersection(line2_string).coords,但我还想定义Line_string1这两条线的交点以自动方式发生的线段。

到目前为止,我已经遇到了这个答案 [a link] (Get the vertices on a LineString any side of a Point),但我从定义的拆分函数中得到了一个无输出。

关于什么可能是错误的任何想法或任何其他建议?

0 投票
1 回答
2993 浏览

python - 查找两个地理数据点之间的交点

我有两对纬度/经度(以十进制度表示)以及它们的半径(以米表示)。我想要实现的是找出这两个点之间是否存在相交(当然,很明显这在这里不成立,但计划是在许多其他数据点中尝试这个算法)。为了检查这一点,我正在使用 Shapely 的 intersects() 函数。然而,我的问题是我应该如何处理不同的单位?我应该先进行某种转换\投影(纬度\经度和半径的单位相同)吗?

编辑:

我在这里找到了这个库(https://pypi.python.org/pypi/utm),这似乎很有帮助。但是,我不能 100% 确定我是否正确应用它。有任何想法吗?

解决方案:

所以,我终于设法解决了我的问题。以下是两种不同的实现,它们都解决了相同的问题:

0 投票
1 回答
73 浏览

shapely - 使用 Shapely 找到三个(或更多)循环之间的交点

在 Shapely 的教程中,有一个很好的例子(如下图所示)关于如何找到恰好两点之间的交点:

但是它没有说的是如何同时找到三个以上点之间的交点。有任何想法吗?

0 投票
4 回答
13297 浏览

python - 从 Voronoi 镶嵌到 Shapely 多边形

从一组点我使用scipy构建了 Voronoi 镶嵌:

现在我想从 Voronoi 算法创建的区域中构建一个Shapely 多边形。问题是 Polygon 类需要一个逆时针顶点列表。虽然我知道如何对这些顶点进行排序,但我无法解决问题,因为通常这是我的结果:

在此处输入图像描述

(重叠多边形)。这是代码(一个随机示例):

我怎么解决这个问题?

0 投票
0 回答
512 浏览

python - python匀称地绘制多层

有一组(纬度,经度)点可以简单地用 可视化matplotlib.pyplot.scatter(list_of_longitudes, list_of_latitudes)。但我想将这些点绘制在恰好位于 shapefile 中的道路网络之上。如何在一个地图/图形中简单地将两个文件与 Python 一起绘制?

特别是在寻找像 Shapely 这样的东西

0 投票
1 回答
2853 浏览

python - 用匀称的笛卡尔和 matplotlib 绘制断开的实体

我需要绘制一个不连贯的圆圈列表,这些圆圈是我为其他目的而创建的。

我试图完全按照http://toblerity.org/shapely/manual.html#cascading-unions中的示例进行操作(请参阅代码),但只有当圆圈重叠并且整体连接时才有效(这不是在我的情况下)。正如您通过替换线所看到的

与笛卡儿(或者如果有人将笛卡儿断言作为测试注释掉,matplotlib 失败)打破并AssertionError因为它不是多边形的东西assert vertices.ndim == 2

查看matplotlib.path.Path的文档,似乎可以使用 MOVETO 来实现这一目标,但 shapely 似乎不支持它。这个对吗?我有什么解决方法?