Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Numpy加速Python中OpenCV图像的循环?_Python_Numpy_Opencv - Fatal编程技术网

如何使用Numpy加速Python中OpenCV图像的循环?

如何使用Numpy加速Python中OpenCV图像的循环?,python,numpy,opencv,Python,Numpy,Opencv,目标是通过使用numpy中的内置函数来克服python中嵌套循环执行缓慢的问题 在下面的代码中,我使用imread(颜色:BGR)将图像读取到src(一个numpy数组)中,并分别为每种颜色定义阈值(BGR)。然后我逐像素循环src(对于嵌套循环有两个),在每次迭代中,我测试当前像素是否满足阈值(每个值有三个条件:蓝色、绿色和红色),在阳性情况下(像素满足条件),我将其坐标保存在列表中(行号:i,列号:j) 因此,我想知道如何使用numpy内置函数重写此代码,以受益于其速度?您可以这样做: a

目标是通过使用
numpy
中的内置函数来克服python中嵌套循环执行缓慢的问题

在下面的代码中,我使用
imread
(颜色:BGR)将图像读取到
src
(一个numpy数组)中,并分别为每种颜色定义阈值(BGR)。然后我逐像素循环
src
(对于
嵌套循环有两个
),在每次迭代中,我测试当前像素是否满足阈值(每个值有三个条件:蓝色、绿色和红色),在阳性情况下(像素满足条件),我将其坐标保存在列表中(行号:
i
,列号:
j

因此,我想知道如何使用
numpy
内置函数重写此代码,以受益于其速度?

您可以这样做:

a = np.array([[[1,2,3], [10,20,30]],
     [[40,50,60], [10, 30, 20]]
    ])

[*zip(*np.where((a > (10,20,30)).all(-1)))]
输出:

[(1, 0)]
注意:
np.where((a>(10,20,30)).all(-1))
单独提供
[array([1])、array([0])]
,在某些情况下可能更好。

您可以这样做:

a = np.array([[[1,2,3], [10,20,30]],
     [[40,50,60], [10, 30, 20]]
    ])

[*zip(*np.where((a > (10,20,30)).all(-1)))]
输出:

[(1, 0)]
注意
np.where((a>(10,20,30)).all(-1))
单独提供的
[array([1])、array([0])]
在某些情况下可能更好