【问题标题】:algorithm to draw image selection绘制图像选择的算法
【发布时间】:2021-07-05 08:33:27
【问题描述】:

我有一个大小为 M*N 的图像。每个像素都可以选择或不选择。

给定每个像素的选择值(选择或未选择),获取代表选择的多边形集的最有效算法是什么?

【问题讨论】:

  • 如果您的示例选择蒙版仅包含已经是多边形的连接线。究竟是什么问题?
  • 编辑了问题。选择蒙版包含每个像素的选择值,而不是线条或多边形。
  • @razor3x "Given selection values for each pixel (selected or not)" 你的意思是你将提供带有1, 0MxN二进制数组值1 已选择,0 未选择?还是只是角点,还是边界线?
  • @Bilal 它是 MxN 二进制数组,每个像素都有 1, 0
  • @razor3x 您需要两个简单的步骤:1. cv2.findContours 找到轮廓,2. cv2.approxPolyDP 将它们近似为多边形,有关详细信息,请参阅此tutorial

标签: algorithm image-processing


【解决方案1】:

我认为任何填充算法都可以适用:

  • 获取尚未使用的选定像素
  • 从它开始并填充由其所有连接像素定义的表面
  • 这将定义一个多边形(只保留水平/垂直极值)
  • 从任何尚未考虑获得另一个多边形的选定像素重新开始

【讨论】:

    【解决方案2】:

    对角线可能很棘手,因为像素精确的舍入误差,所以我只会选择具有水平和垂直线的矩形(重叠的可以合并到多边形)

    我会执行以下步骤:

    1. 将选定像素的选定邻居连接到水平线

    2. 将水平线连接到矩形

    3. 将重叠/接触的矩形连接到一个多边形

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-21
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多