如果计算机
numpy上可用,请尝试执行以下 *** 作:
import numpy as npfrom PIL import Imageim = Image.open('fig1.png')data = np.array(im)r1, g1, b1 = 0, 0, 0 # Original valuer2, g2, b2 = 255, 255, 255 # Value that we want to replace it withred, green, blue = data[:,:,0], data[:,:,1], data[:,:,2]mask = (red == r1) & (green == g1) & (blue == b1)data[:,:,:3][mask] = [r2, g2, b2]im = Image.fromarray(data)im.save('fig1_modified.png')
它将使用多一点(3倍)的内存,但它应该快得多(〜5倍,但对于更大的图像,更多)。
另请注意,如果您只有RGB(而不是RGBA)图像,则上面的代码比需要的代码稍微复杂一些。但是,此示例将单独保留Alpha波段,而没有一个更简单的版本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)