当前位置: 首页 > 面试题库 >

SciPy创建2D多边形蒙版

程皓轩
2023-03-14
问题内容

我需要使用标准Python包创建一个表示多边形的二进制掩码的numpy 2D数组。

  • 输入:多边形顶点,图像尺寸
  • 输出:多边形的二进制掩码(numpy 2D数组)

(更大的上下文:我想使用scipy.ndimage.morphology.distance_transform_edt获得该多边形的距离变换。)

谁能告诉我该怎么做?


问题答案:

答案很简单:

import numpy
from PIL import Image, ImageDraw

# polygon = [(x1,y1),(x2,y2),...] or [x1,y1,x2,y2,...]
# width = ?
# height = ?

img = Image.new('L', (width, height), 0)
ImageDraw.Draw(img).polygon(polygon, outline=1, fill=1)
mask = numpy.array(img)


 类似资料:
  • 我正在寻找一种方法来创建一组多边形(rechtangles),沿着一条线在多个多边形中创建一组多边形(rechtangles),并将其水平隔开,如图所示。 我尝试生成点并将其用作多边形的中点,但问题是,通过创建等间距的点光栅,除了180度之外,不可能以任何其他方向旋转。 例子 给出了一个多多边形形状的对象和由宽度和高度以及每个多边形之间的垂直和水平间距定义的多边形。多边形应仅放置在多多边形内,且不

  • 我正在用JavaScript(http://www.isogenicengine.com/demos/1.1.0/lander/)编写一个简单的月球着陆器克隆,而不是只有高低的基本景观,我想要一个算法来生成随机的洞穴状空间。给定一个矩形区域来处理[0,0,1920,1200],该算法应该能够生成如下图所示的内容。理想情况下,任何一个洞穴区域的“入口”都应该有一个设定的宽度,以便着陆器可以进入“内部

  • 我试图从顶点位置创建一组多边形,保存在X,Y格式。 下面是我的数据的一个例子——每行代表一个多边形的顶点。多边形是正方形 我正在使用,因此我的数据需要在列表中。所以我创建了一个循环来尝试从矩阵中将我的数据转换为列表格式。 我创建了一个循环,遵循我在这个网站上的其他一些问题中找到的代码。我突破了每一步,试图理解为什么我只有一个多边形作为输出,即使我有2组点。 你能帮我理解我如何调整代码写出两个多边形

  • 我有一个geopandas数据框,其中包含一个形状良好的点几何体列表。还有一列包含ID列表,用于指定每个点所属的唯一多边形。简化输入代码为: 我想按多边形ID分组,以便将几何体从点转换为多边形。该输出基本上如下所示: 我想这很简单,但我很难让它工作。我发现下面的代码允许我将其转换为开放式多段线,但无法计算出多边形。有人能建议如何适应这种情况吗? 简单地用多边形替换LineString会导致Type

  • 有没有人知道如何在Android中创建一个多边形的地理围栏?我知道Android支持圆形(即lat/long+radius)地理围栏,但我需要对它们的边界进行更精确的控制。

  • 在那里你可以看到我的多边形,我使用我的动态游戏对象 我必须把这个红点左下角放在这个多边形的中间。 但是我如何计算我的sprite的x/y? 通常我会说 和sprite的定位如下所示: 但是现在这个多边形是不可能的,因为body phyiscs编辑器通常将body的原点放在X、Y0和右上部的顶点上,就像你在上面贴出的图片中看到的一样。但在我的例子中,身体的原点(红点)被放置在这个多边形中间的某个地方