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 の画像の場合、これは 1 秒以上続きます。これは長すぎます。すぐにそのタスクを実行する必要があります。

4

1 に答える 1

5

最後の軸に沿ってマトリックスを反転するこの単一の操作はどうですか?

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