我一直无法尝试使用sRGB和Alpha通道保存png图像。我首先裁剪图像,然后像这样保存:
from PIL import Image
import cv2
inputPath = 'picture.png'
img = cv2.imread(inputPath)
crop_img = img[bounds[3]:bounds[2], bounds[1]:bounds[0]]
pth = name + ".png"
crop_img.save(pth)
然而,这会创建一个这样的文件:
我希望文件是这样的:
如何在python中获得此结果?
P.S。原始图像确实具有Alpha通道和sRGB颜色配置文件。
非常感谢任何帮助!
答案 0 :(得分:3)
您可以按如下方式阅读图像。它会加载你的图像,包括alpha通道。
img = cv2.imread(inputPath,-1)
<强>更新强>
以下代码与documentation中的cv2.IMREAD_UNCHANGED=-1
以来给出的答案相同。虽然上面的片段解决了这个问题,但使用它并不是一个好的编程习惯,因为它没有给出真正-1
的内容。但是下面的代码片段给出了关于代码行为的明确想法。
img = cv2.imread(input,cv2.IMREAD_UNCHANGED)