【发布时间】:2014-12-27 00:41:28
【问题描述】:
我从一个 nxm 布尔数组开始,它定义了区域——如果它在区域中,则为 true,否则为 false。例如:
r = np.array([[ 0, 0, 1, 1, 1],
[ 0, 1, 1, 0, 0],
[ 0, 1, 1, 1, 0],
[ 1, 1, 1, 0, 0],
[ 1, 1, 0, 0, 0]])
区域之间的线可以定义为一个 n-1 x m-1 数组,它表示每组四个值之间的一个“点”。如果所有 4 个周围值都相同,则您不在区域之间的边缘。如果 4 个值中的任何一个值不同,那么您就是。对于上面的 r:
l = np.array([[ 1, 1, 1, 1],
[ 1, 0, 1, 1],
[ 1, 0, 1, 1],
[ 0, 1, 1, 0]])
有什么想法可以有效地做到这一点吗?我试过在两个方向上做一个差异,但这会加倍。有 2D 差异功能吗?还有其他方法吗?
【问题讨论】:
标签: python arrays numpy transformation edge-detection