4

我在 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])

对于 509x359 的图像,这持续超过一秒,这实在是太多了。它应该立即执行它的任务。

4

1 回答 1

5

这个沿最后一个轴反转矩阵的单个操作怎么样?

cv_image = cv_image[:,:,::-1]
于 2012-07-03T19:04:42.707 回答