【问题标题】:How to blend images in python (without blend method)如何在python中混合图像(没有混合方法)
【发布时间】:2015-03-04 14:00:34
【问题描述】:

这是我课堂上的一项作业,所以我需要使用插值将图像与 python 混合在一起,但我遗漏了一些东西,也许你可以帮助我理解什么。

到目前为止,这是我的代码:

from PIL import Image
import numpy as np
image_one=Image.open('capone.pgm')
image_two=Image.open('escobar.pgm')

out=Image.new(image_one.mode, image_two.size)

(l,h)=image_one.size
for j in range(0, h):
    for i in range(0, l):
          out.getpixel((i,j)),(image_one.getpixel((i,j)) * (1.0 - 0.3) +  image_two.getpixel((i,j)) * 0.3 )

out.save("testaando.jpg","JPEG")
out.show()

0.3 是我想要用于混合的 alpha 两个原始图像是相同的大小和模式

【问题讨论】:

  • 究竟是什么不起作用?

标签: python-2.7 python-imaging-library


【解决方案1】:
PIL.Image的

getpixel方法返回一个像素的值,但是要修改它需要使用putpixel方法。所以不是

out.getpixel((i,j)),(image_one.getpixel((i,j)) * (1.0 - 0.3) +  image_two.getpixel((i,j)) * 0.3 )

使用

out.putpixel((i,j), (image_one.getpixel((i,j)) * (1.0 - 0.3) +  image_two.getpixel((i,j)) * 0.3 ))

【讨论】:

  • @DouglasHeydt 如果他回答了你的问题,请将他的回复标记为答案。
【解决方案2】:

这只是一个猜测,因为目前没有太多信息。

线:

out.getpixel((i,j)),(image_one.getpixel((i,j)) * (1.0 - 0.3) +  image_two.getpixel((i,j)) * 0.3 )

应该是:

out[i, j] = (image_one.getpixel((i,j)) * (1.0 - 0.3) +  Image_two.getpixel((i,j)) * 0.3 )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2018-05-19
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多