当前位置: 首页 > 知识库问答 >
问题:

PIL:如何绘制给定一组无序轮廓尺寸的形状

葛念
2023-03-14

我使用的是Python Version3.8.7和PIL库。

我有一个数据表,其中包含了蓝图的各种元素的维度。两个主要元素是线条(组成轮廓)和标签(彩色矩形)。使用PIL,我能够绘制下面的图像。

但是,我想填写每个房间的颜色与属于它的相应标签相同。现在我只有构成轮廓线的尺寸(坐标)和标签的尺寸。每个维度值(坐标)如下:

(x_min, y_min, x_max, y_max)
                #Dimensions/coordinates    # Color                # Outline Color
draw.rectangle((200, 100, 300, 200), fill=(0, 192, 192), outline=(255, 255, 255))

共有1个答案

乐正育
2023-03-14

如果这是预期的结果:

您可以使用以下伪代码:

for thisColour in list of blob colours (1)
   generate list of neighbours 1-pixel outside this blob (2)
   for thisNeighbour in list of neighbours
      if thisNeighbour is currently white
         floodfill with thisColour from thisNeighbour as seed (3)
  1. 您应该有一个彩色斑点列表。
  2. 这是简单的数学,因为你的彩色斑点都是矩形,你只需要从斑点左上角的x,y减去1,然后在右下角的x,y上加上1。所以如果你的斑点在8,10到100,110之间,相邻的点是沿着矩形的边7,9到99,109。scikit-image有一个rectangle_perimter()也可以为您完成这项工作。如果blob是任何复杂的形状,可以使用形态学打开来获取它们。
  3. 为此使用floodfill()。
 类似资料:
  • 我有3个maven项目A、B、C。A是B的父项目,B是C的父项目。所有概要文件都在pom中定义。项目A的xml。 在项目C中,我试图根据所选概要文件在spring测试上下文中选择属性文件(在src/test/resources下)。对于回归测试,我们有两个属性文件: 本地应用程序测试。属性 在我们的Windows开发系统上,选定的配置文件将是“本地”的,相应地在服务器上也是如此。选择“本地”配置文

  • 问题内容: 如何使用PIL或任何其他Python库获取图片边的大小? 问题答案: 根据文档。

  • 我正在尝试autowire一个特定大小的对象列表,但尽管搜索了所有与stackoverflow相关的问题,我还是看不到前面讨论过的类似的内容。我很惊讶这永远都不需要? 我尝试了如下所示,但我得到了错误@bean public List listMyListeners(@value(“${workflow.threads:10}”)int threads){return new ArrayList(

  • 但是我尝试重写、、等似乎都不起作用,或者可能是我实现错误。我需要调整它的内部子组件吗?或者仅仅调整

  • 问题内容: 有没有一种简单的方法来获取绘制如下轮廓线的(x,y)值: 问题答案: 查看返回的ContourSet的collections属性。特别是第一个集合的get_paths()方法返回组成每个线段的成对点。 要获取坐标的NumPy数组,请使用属性。

  • 问题内容: 我试图用一层构建CNN,但是我有一些问题。确实,编译器告诉我 ValueError:检查模型输入时出错:预期conv1d_1_input具有3维,但数组的形状为(569,30) 这是代码 问题答案: td; LR你需要重塑你的数据有一个 空间 维度是有道理的: 本质上重塑如下所示的数据集: 至: 解释和例子 通常,卷积在空间维度上起作用。内核在产生张量的维度上“卷积”。对于Conv1D