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

最佳答案

在我的机器上,您的方法需要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]

关于python - 在python中更快的图像像素处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41738471/

10-09 15:26