通过numpy数组优化迭代

ryn*_*ynd 4 python iteration opencv loops numpy

我在Python中交换多维numpy数组的值.但代码太慢了.另一个帖子说:

通常,您可以避免直接迭代它们.......很有可能很容易进行矢量化.

那么,您知道一种优化以下代码的方法吗?

import PIL.Image
import numpy

pil_image = PIL.Image.open('Image.jpg').convert('RGB')
cv_image = numpy.array(pil_image)
# Convert RGB to BGR
for y in range(len(cv_image)):
    for x in range(len(cv_image[y])):
        (cv_image[y][x][0], cv_image[y][x][2]) = (cv_image[y][x][2],
            cv_image[y][x][0])
Run Code Online (Sandbox Code Playgroud)

对于509x359的图像,这最后超过一秒,这太过分了.它应该立即执行它的任务.

eum*_*iro 5

这个单一操作如何沿最后一个轴反转矩阵?

cv_image = cv_image[:,:,::-1]
Run Code Online (Sandbox Code Playgroud)

  • `cv_image [... :: - 1]` (2认同)