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