【发布时间】:2011-10-12 14:07:10
【问题描述】:
我有一个 2D numpy 数组。我想在数组的特定值周围找到非矩形边界框。矩形边界框已经在Question:How to select all locations of unique elements in numpy 2d array with bounding box around them?中解决了
让我们考虑以下示例
array([[1, 1, 2, 2],\
[0, 1, 0, 1],\
[3, 0, 1, 4],\
[0, 3, 1, 1]])
结果有点复杂
For one unique value 1, (0,0),(0,1),(1,1),(1,2),(1,3),(2,2), (3,2),(3,3)
我们希望以这样一种方式构建索引,即在区域内考虑极值内的零值。从这个意义上说,它更像是一个区域段问题,除了区域内的零之外,它的值完全相同。它定义了一个区域的边界。
需要注意的是,该区域仅由唯一值和零组成。通过构造问题,彼此之间不能存在任何非唯一值。
也许是图像处理意义上的图像中的轮廓查找问题(我不确定)
我们找到了这个区域。我们想从一堆特征中搜索哪个特征位于某个区域。例如,我们检测 SIFT。我们想找出哪些 sift 特征位于一个独特的区域,而不需要对特征进行任何比较。
请让我知道进一步澄清。
编辑:重要的是要注意这不是连接组件问题。在连通分量中,一个区域实际上由同质值组成。在我们的例子中,两者之间可以有零(或任何其他值)。所以这只是检测受唯一值约束的区域。还需要注意的是,在该区域内不能有任何任意值,只能有一个值,例如描绘背景的零或 255。
非常感谢。
【问题讨论】:
标签: python image-processing numpy