Python用OpenCV合并图片,添加透明部分

2018-12-21  本文已影响0人  qinbatista

看了python网上图片合并都是互抄,其实大部分人需要的合并只需要把一个图片粘贴到另一张图片就行了。

下面是合并前的图片:

底图

下面是需要合并的素材:

需要合并的素材

合并后的效果:

合并后的图片

图片准备工作:

1: 确保两张图片位置比例正确或者大小一样。(省去写覆盖位置的代码)

2: 确保素材不需要显示的部分的RGB是 (0,0,0)怎么修改图片RGB自己查ps。(以免合并的时候直接覆盖原图)

确保不需要部分RGB是(0,0,0)

代码工作:

安装python模块:

pip3 install opencv-python

pip3 install numpy

代码思路

1: 把两张图片剪辑成一个大小,比如512*512

2: 素材覆盖底图

修改素材大小代码:

def ModifySizeOfPicTo512(_PicLocation):

    im1 = cv2.imread(_PicLocation) #素材的位置

    im2 = cv2.resize(im1, (512,512), interpolation=cv2.INTER_CUBIC)#改变素材大小,代码中的512根据自己需求修改

    cv2.imwrite(_PicLocation, im2)#从新写入素材

    return _PicLocation #返回素材位置

覆盖素材代码

def CombinePicOpenVC(_pathPic1,_pathPic2):

    img1 = cv2.imread(ModifySizeOfPicTo512(_pathPic1)) #底图 _pathPic1 为底图位置

    img2 = cv2.imread(ModifySizeOfPicTo512(_pathPic2)) #素材 _pathPic2 为素材位置

    img_mix = cv2.addWeighted(img1, 1, img2,1, 0) #合并,其中参数1表示透明度,第一个1表示img1不透明,第二个1表示img1不透明,如果改成0.5表示合并的时候已多少透明度覆盖。

    cv2.imwrite(_pathPic1, img_mix) #合并完毕,_pathPic1底图被修改成合并后的图片

代码实例:

CombinePicOpenVC('/Users/yupengqin/Desktop/app_icon.png','/Users/yupengqin/Desktop/icon_flag.png')

大家可以根据自己的需求修改成自己的方法,我这个方法的要点就是素材不需要部分处理成RGB(0,0,0)和素材大小保持一致,这样可以快速合并图片,希望能帮助到家。

上一篇 下一篇

猜你喜欢

热点阅读