gpt4 book ai didi

python - 如何围绕 2d numpy 数组中的特定值创建非矩形边界框?

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:23 25 4
gpt4 key购买 nike

我有一个二维 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。我们想找出哪些筛选特征位于一个独特的区域,而不需要对特征进行任何比较。

请让我知道进一步的说明。

编辑:重要的是要注意这不是连通分量问题。在连通分量中,一个区域实际上由齐次值组成。在我们的例子中,两者之间可以有零(或任何其他值)。所以这只是检测一个受唯一值约束的区域。同样重要的是要注意,在该区域内不能有任何任意值,只能有一个值,如零或 255 来描述背景。

非常感谢。

最佳答案

您可以使用基于 graph partition method 的分割算法.例如,您可以使用 Random Walker .但是您必须按以下方式更改权重。

对于每个像素 v_i,设 g_i 为像素的颜色。而原始算法将 w_{ij} 定义为:

w_{ij} = exp{-beta*(g_i - g_j)^2)}

g_i==0g_j==0 时,您应该设置 w_{ij}=0

关于python - 如何围绕 2d numpy 数组中的特定值创建非矩形边界框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7741383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com