我有以下嵌套循环遍历大图像(7020x5100)并设置具有相同维度的另一图像的像素值,具体取决于i的值。这个问题非常慢......请你提一下,如何加快这个算法的速度?
A=[]
for x in xrange(x_img):
for y in xrange(y_img):
A.append(probImage1[x][y])
A.append(probImage2[x][y])
A.append(probImage3[x][y])
i = np.argmax(A)
if i == 0:
processedImage[x,y] = [1, 89, 255]
if i == 1:
processedImage[x,y] = [241, 28, 3]
if i == 2:
processedImage[x,y] = [137, 254, 255]
A = []
答案 0 :(得分:1)
在我的机器上,你的方法需要6分55秒!
尽量避免迭代图像的循环,特别是在所有内存分配的情况下。对于7020 x 5100图像,此方法需要2.14秒
newProb=np.dstack((probImage1,probImage2,probImage3))
A=np.argmax(newProb,axis=2)
processedImage[A==0]=[1,89,255]
processedImage[A==1]=[241,28,3]
processedImage[A==2]=[137,254,255]