python - 在python中更快的图像像素处理

标签 python opencv image-processing pixel-manipulation

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

相关文章:

python - 通过 OpenCV 4.2 利用 GPU

python - 如何在 Python 中将一张图像的亮度应用到另一张图像上

c++ - 如何在不做任何改动的情况下将 openCV cv::Mat 保存到图像中

c++ - 如何解决opencv和c++中霍夫变换的错误

java - 在 OpenCV、Java 中添加两个 Mats 时出错

matlab - 将图像中像素的 8-connectivity 更改为 4-connectivity

python - Django - 循环标签。我怎样才能让它发挥作用?

python - 为什么我的单词中的字符不在字母表中移动一个位置?

python - 用于预测数字输出的自定义损失函数

Python 正则表达式 : Matching from end of string (reverse)