我不熟悉python、numpy和opencv。我在玩来自here的哈里斯角探测器的第一个例子。我的目标是得到所有角落的有序清单。通过这个简单的代码,我可以得到角点的X和Y坐标及其值:
height, width, depth = img.shape
print height, width
for i in range(0, height): #looping at python speed
for j in range(0, (width)):
if dst[i,j] > 0.9*dst.max():
print i, j, dst[i,j]
然而,这是非常缓慢的。我不知道这是如何调用的,但很显然,使用numpy,可以以C速度循环数组,甚至可以赋值,例如:
^{pr2}$我可以循环一个数组并在另一个变量中指定感兴趣的值的位置吗?一、 我可以在我的代码中使用这个来加快速度吗?在
您可以获得传递IF条件语句的元素掩码。接下来,如果需要通过条件的索引,请在掩码上使用^{} 或^{} 。对于有效的} 。实现应该是这样的-
dst
元素,使用相同的掩码索引dst
,因此使用^{如果您想分别获得这三个打印输出,您可以-
^{pr2}$最后,如果您想编辑基于
2D
mask
的3D数组img
,那么可以-这样,您就可以一次性更改
img
中所有通道中的相应元素。在首先,如果您使用的是python2.X,那么应该使用},这样可以加快速度。^python3.X中的{}与python2.X中的
xrange
而不是{xrange
具有相同的实现如果你想迭代numpy数组,为什么不使用numpy枚举器进行迭代呢?在
相关问题 更多 >
编程相关推荐