0

我有以下嵌套循环,它遍历一个大图像(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 = [] 
4

1 回答 1

1

在我的机器上,你的方法需要 6 分 55 秒!

尽量避免 for 循环遍历图像,尤其是在所有内存分配进行的情况下。对于 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]
于 2017-01-19T12:06:56.377 回答