美文网首页
使用Python Opencv解决PPT保存的PNG不透明问题

使用Python Opencv解决PPT保存的PNG不透明问题

作者: qizhen816 | 来源:发表于2019-08-12 09:37 被阅读0次

    在使用opencv制作图像透明遮盖(掩膜)的时候,发现使用PPT保存的png图片不是透明的,带有的颜色会遮住背景。
    输出图像后发现,ppt保存的png图片中,透明区域的三通道像素为129,129,129,导致不能透明,使用opencv处理:

        img = cv2.imread('test.png')
        #修改ppt保存的图片为透明色
        print(img,img.shape)
        for i in range(img.shape[0]):
            for j in range(img.shape[1]):
                p=img[i][j]
                if p[0] == 129 and p[1]==129 and p[2]==129:
                    p[0]=0
                    p[1]=0
                    p[2]=0
        cv2.imwrite('test_new.png',img)
    

    顺便附上图像叠加的代码,前景透明LOGO:

        img1 = cv2.imread('背景图.jpg')
        img2 = cv2.imread('前景.png')
    
        rows, cols = img2.shape[:2]
        roi = img1[:rows, :cols]
    
        # 创建掩膜
        img2gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
        ret, mask = cv2.threshold(img2gray, 10, 255, cv2.THRESH_BINARY)
        mask_inv = cv2.bitwise_not(mask)
    
        # 保留除前景外的背景
        img1_bg = cv2.bitwise_and(roi, roi, mask=mask_inv)
        dst = cv2.add(img1_bg, img2)  # 进行覆盖
        # 融合后放在原图上
        cv2.imshow('img_add',dst)
        cv2.waitKey()
        cv2.destroyAllWindows()
    

    相关文章

      网友评论

          本文标题:使用Python Opencv解决PPT保存的PNG不透明问题

          本文链接:https://www.haomeiwen.com/subject/rzlyjctx.html