假设我们在白色背景上有一个黑色甜甜圈。什么是好方法,仅查看任何像素的值(0 =非白色,1 =白色)和任何相邻像素值,以确定图像上找到的两个白色区域中的哪一个位于甜甜圈内?
答案 0 :(得分:3)
在计算机图形学中,已经在几何处理的背景下广泛研究了这个问题。目标是知道一个点是在多边形的外部还是外部(可能带有孔),并且已经用于填充颜色。
最常见的解决方案是从当前点沿随机方向抛出一条线(为简单起见,您可以采用水平扫描线),并计算与边界的交点数。如果这个数字是偶数,你就在外面,如果是奇数,你就在里面。
在图像处理的上下文中,可以使用边缘寻找技术(例如,Sobel算子)来找到边界。您现在可以从给定点向右走一行(例如)并计算您找到的边数。
答案 1 :(得分:3)
WhitAngl的回答是正确的,所以我的回答只是简单介绍图像处理中涉及的一些问题。如果你知道这些,抱歉天真。
鉴于您的初始图像,由于检测边缘的问题,仅考虑其边缘必然会得到不正确的结果。它们可能会被破坏,它们可能无法被检测到等等。另外,从您自己的考虑,我们不能简单地使用0 =不是白色,1 =白色。使用原始图像,这是考虑的结果:
如果我们假设您有一个更好的二进制表示形式:
然后WhitAngl的答案非常适用。此外,在这种情况下,答案可以简化为:如果外边缘的黑色像素接触白色像素,则该白色像素不是内部像素。这给出了:
每个白色像素都在您的甜甜圈内部。