代码: 全选
image = r"D:\test1.png" #此处为原图
artifical_alpha = r"D:\test1mask.png" #此处为使用Photoshop人工生成的alpha通道
[image, mask] = core.imwri.Read(filename = image, alpha = True)
clip = core.resize.Spline36(clip, format = vs.RGB48)
image = core.resize.Spline36(image, format = vs.RGB48)
[mask2, alpha] = core.imwri.Read(filename = artifical_alpha alpha = True) #这里只是用来提取人工生成的alpha通道
mask = core.resize.Spline36(mask, format = vs.GRAY16)
alpha = core.resize.Spline36(alpha, format = vs.GRAY16)
mask = core.std.Invert(mask)
clip = haf.Overlay(clipa = clip, clipb= image, x=0, y=0, mask=mask)
#clip = haf.Overlay(clipa = clip, clipb= image, x=0, y=0, mask=alpha)
def output(x):
return{
'a':clip,
'b':image,
'c':mask,
'd':alpha,
}.get(x,image).set_output()
output("c")
人工抽取的mask:(确定是用纯黑色对透明部分涂抹并涂抹完全)
问题描述:
1. 无论是通过人工提取出的alpha通道还是用脚本提取的均出现箭头所示问题:
红黑色矩形图形应该是完全不透明的,但是在实际应用的时候却出现了透明的情况
2. 人工提取的透明通道和脚本提取的透明通道不一致:
注意透明度是有区别的
抽出的透明通道:
alpha:(人工)
mask:(脚本生成)