首先,cv2.imread(img_path,cv2.IMREAD_UNCHANGED)
返回的是RGBA,在滤色处理(C=1-(1-A)*(1-B))后一定要设置被处理部分的透明度,否则会出现意想不到的情况。
另外注意在RGBA中,如果是完全透明,你那部分的像素在RGBA中是(0,0,0,0)
所以要知道滤色的原理自己做些修改
左边是我想要的效果,而作宾是滤色处理后透明度没有改变的结果
总结:对原理不熟悉会造成很多困难,所以基本功要扎实,知道自己操纵的是什么数据,知道操纵的原理,方可一往无前。