python - 试图将 2 张图像相互重叠
问题描述
我有两张照片需要拼成一张。第一个是关于一个有大海的海滩。第二张图片是一个仙人掌,后面有一个非常明亮的绿色屏幕。我需要找到一种方法来调低仙人掌图片中的绿屏,这样我就可以将它放在海滩图片上,让它看起来就像海滩上有仙人掌。我可以更改像素颜色,但似乎无法取出仙人掌图片的亮绿色屏幕颜色。我也可以把两张图片放在一起,但是仙人掌图片的绿屏覆盖了海滩图片的颜色。有没有人可以帮我看看如何调低仙人掌图片的绿色像素或摆脱绿屏部分?这是我正在使用的代码。它在谷歌文档中。我迷路了。这是一个链接,可以查看我需要做什么。
https://docs.google.com/document/d/1ZYrigN1LXSMq3_llc6eimZqBh2R9ZVeBmmxSUx63__E/edit?usp=sharing
解决方案
在这里,您必须更改 (r, g, b) 值以获得最佳掩码。您也可以使用范围。看一下这个。
from PIL import Image
from PIL import ImageFilter
import os
im1 = Image.open('beach.jpg')
im2 = Image.open('cactus.jpg')
back_im = im1.copy()
for filename in os.listdir("."):
if filename[-3:] == "jpg":
img = Image.open(filename)
img = img.convert("RGBA")
pixdata = img.load()
for y in range(img.size[1]):
for x in range(img.size[0]):
r, g, b, a = img.getpixel((x, y))
if (r == 76) and (g == 244) and (b == 24):
pixdata[x, y] = (255, 255, 255, 0)
if r == 0 and g == 0 and b == 0:
pixdata[x, y] = (255, 255, 255, 0)
img2 = img.filter(ImageFilter.GaussianBlur(radius=1))
back_im.paste(img2,mask=img2)
back_im.save('filename.jpg')
推荐阅读
- angular - IIS上的angular6应用程序部署
- pandas - Pandas:创建包含总行列的新数据框
- java - 当尝试在Java中添加一个数字的数字时,5 + 0 = 53?
- python - 在 python scipy 1.1 版中计算信噪比
- php - Laravel 上传图片库 64
- javascript - 如何在 React Native 中的两个颜色动画循环之间平滑过渡?
- c# - 根据所选值禁用 (#) 位于另一个组合框下方的组合框
- python - 生成具有不同范围的嵌套列表
- r - 具有多列的 4 行 data.table 的移动平均值
- cmusphinx - CMU Sphinx 可以在一个句子中支持多种语言吗?