获取一定范围内非零二进制掩码的坐标

2024-06-16 15:04:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图得到一个二进制掩码的非零值(该掩码已被某个范围索引,该范围由上下x,y值定义)

起初,我是这样做的

region = np.transpose(np.nonzero(mask_belt[lower_Y[i]:upper_Y[i],lower_X[i]:upper_X[i]]))

但后来我意识到区域坐标给了我被范围裁剪的遮罩的坐标,所以我必须在之后这样做

region[:,1] = region[:,1]+lower_X[i]
region[:,0] = region[:,0] + lower_Y[i]

但我觉得这很容易出错。有没有更干净的方法来获取二进制掩码的非零值(不是在整个掩码上,而是在某个X和Y值范围内)


Tags: 方法区域定义np二进制maskupperlower
1条回答
网友
1楼 · 发布于 2024-06-16 15:04:38

我们可以一步完成这些求和,也可以在第一步引入np.argwhere来获得这些索引。因此,其中一种方法是:

region = np.argwhere(mask_belt[lower_Y[i]:upper_Y[i],lower_X[i]:upper_X[i]]) 
region += [lower_Y[i],lower_X[i]]

相关问题 更多 >