【问题标题】:Coloring only the inside of a shape仅对形状的内部着色
【发布时间】:2016-08-03 18:32:27
【问题描述】:

假设你得到了这张图片

并被指示以编程方式仅将其内部着色为适当的颜色,但程序不仅必须处理此形状和其他图元,还必须处理任何轮廓形状,无论它可能多么复杂和是否着色.

这是我要解决的问题,但这是我卡住的地方,教计算机看黑线并在其中着色似乎应该很简单。但是搜索大多会出现特征脸风格识别算法,在我看来,这似乎是过度拟合,并且比至少这个问题的基本形式所需的复杂性要大得多。

我想将此定义为一个监督学习分类器问题,其目的是为我的模型提供一个完整的图像,它将输出更小的 numpy 数组,这些数组由分类为 objectbackground 的像素组成。但为了做到这一点,我需要给它训练数据,在我看来,我需要手动标记训练集中的每个像素,这显然违背了程序的目的。

现在你有了背景,这是我的问题,给定这张图片,有没有一种有效的方法来获得两个不同的数组,每个数组都包含不包含任何纯黑色的所有相邻像素(RGB(0,0,0 )) 像素?

这将使一个设置圆内部的所有像素,另一个设置圆外部的所有像素

【问题讨论】:

  • 是的,教计算机在黑线内部着色似乎很简单,我不明白为什么你不能从角落开始,遍历外部的每个像素形状(并使用回溯来避免线条),这将为您提供外部数组,然后只需填充其他非黑色像素。我是否遗漏了一些使问题变得更复杂的东西?
  • 这并没有考虑多个形状,或者,例如,形状中的形状,我确实考虑过这种可能性
  • 你到底有什么数据? it seems like it should be simple to teach a computer to see black lines 这对人类来说很容易,是的,但对计算机来说却是出了名的难。但是,如果您尝试着色的形状像圆圈一样孤立,那并不难。如果在硬盘上,形状是一般图像,那就没那么简单了。
  • @KevinWells 的解决方案适用于多种形状,但您还没有解释形状中形状的预期结果是什么
  • 您愿意使用 OpenCV 模块 (cv2) 吗?

标签: python algorithm numpy machine-learning computer-vision


【解决方案1】:

您可以使用scipy.ndimage.measurements.label 为您完成所有繁重的工作:

import scipy.ndimage
import scipy.misc

data = scipy.misc.imread(...)
assert data.ndim == 2, "Image must be monochromatic"

# finds and number all disjoint white regions of the image
is_white = data > 128
labels, n = scipy.ndimage.measurements.label(is_white)

# get a set of all the region ids which are on the edge - we should not fill these
on_border = set(labels[:,0]) | set(labels[:,-1]) | set(labels[0,:]) | set(labels[-1,:])

for label in range(1, n+1):  # label 0 is all the black pixels
    if label not in on_border:
        # turn every pixel with that label to black
        data[labels == label] = 0

这将填充图像中的所有闭合形状,考虑到被图像边缘切割的形状不会被闭合

【讨论】:

  • 当运行on_border 行时返回错误,unhashable type numpy.array 我不知道为什么,因为这是唯一一行我不完全清楚它是如何工作的
  • data 必须是 2D 的 - 听起来对你来说是 3d
  • 该行形成了所有落在边缘的区域 id 的列表 - labels[:,0] 是图像的第一列,等等。set 在这里被用来有效地删除重复项跨度>
  • 谢谢,很有帮助
猜你喜欢
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多