对Python的PIL和图像处理不熟悉,可能只是缺少一个基本函数。在
我应用多个遮罩来创建多个图像遮罩。在
所有的图像都有完全相同的尺寸,遮罩有一个黑色区域。在
从我的UHD源图像(取自NaturalEarth的roads图层),我想创建一个新的(为一个序列)显示透明度和蒙版覆盖区域的精确像素值。面罩未覆盖的区域(白色)应完全透明。在
我让它正常工作,然而,它需要永远,我想做的是一组超过1000个掩模,最终得到相同数量的序列图像。在
以下是我目前所做的:
from PIL import Image
imgDim = (4096, 2048)
sourceImg = Image.open('4K_roads0p05.png')
imgSeqMasks = ["gcMask_Stockholm_7400.png"]
for img in imgSeqMasks:
blank_image = Image.new("RGBA", imgDim)
i = Image.open(str(img))
rgbai = i.convert('RGBA')
if i.size == imgDim:
for x in range(imgDim[0]):
for y in range(imgDim[1]):
r, g, b, a = rgbai.getpixel((x, y))
if (r, g, b, a) == (0, 0, 0, 255):
rsrc, gsrc, bsrc, asrc = sourceImg.getpixel((x, y))
blank_image.putpixel((x, y), (rsrc, gsrc, bsrc, asrc))
blank_image.save('stockholmRoadsAnim_'+str(img)+'.png')
显然,我先用一个图像替换了mask sequence文件夹来测试它。这是如果我把它设置为范围内的x(21002120)和范围内的y(450470)的结果
good result for area appr. Belgium/Luxembourg
original Image (source image layer)
and one of the many mask images I used for this
这只是20×20像素,需要109.763999939秒
有什么办法加快速度吗?在
目前没有回答
相关问题 更多 >
编程相关推荐