【发布时间】:2020-03-20 19:46:00
【问题描述】:
from PIL import Image, ImageDraw, ImageFilter
im_rgb = Image.open('x.JPG')
im_a = Image.open('blackandwhitex.png').convert('L').resize(im_rgb.size)
im_rgba = im_rgb.copy()
im_rgba.putalpha(im_a)
im_rgba.save('xtransparent.png')
多亏了这段代码,我在 blacka 上透明并在上面放了另一张照片,所以最后我有了透明的背景。
它在 opencv 中的样子。我需要打开简历,因为 PIL 旋转照片。但是对于 opencv 和 google colab 的新人来说,这很难写。
我已使用此代码制作了透明黑色:
import cv2
file_name = "x.png"
src = cv2.imread(file_name, 1)
tmp = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
_,alpha = cv2.threshold(tmp,0,255,cv2.THRESH_BINARY)
b, g, r = cv2.split(src)
rgba = [b,g,r, alpha]
dst = cv2.merge(rgba,4)
cv2.imwrite("newx.png", dst)
不太好……
将第二张和第三张照片放在一起后,我想要这个:
这是使用 PIL 的输入。 (所有图像的大小相同。)
【问题讨论】:
-
请提供 (a) 所有原始输入图像(可能会缩小尺寸,如果它们真的有点
[4000 x 5000]),以便复制是可能的,以及 (b) 您的 PIL 保存的实际输出,以便可以进行比较。您的实际问题是什么?您的 OpenCV 版本中是否有太多“黑色”? (然后,调整阈值!?) -
图片大小还可以,我不能以原始尺寸上传它们,因为它们很重。问题是 imshow() 之后的照片在使用 PIL 时被翻转。将 imshow 参数原点更改为“降低”没有任何帮助。所以我想我必须在opencv中编写代码。我需要一些技巧,如何在 opencv 或使用 PIL 中编写它。最后一张照片是我使用 PIL 的输出(错误)并旋转了之前的照片。
标签: python python-3.x opencv python-imaging-library google-colaboratory