• 【opencv】图片背景去除处理与图片合成


    图片LOGO去背景合成图

    实际工作中经常遇到把LOGO合并到大图上面,因此通过模块opencv的学习把最终实现效果呈现给各位优秀的朋友,希望制作的过程与思路能够对大家学习可视化起到画龙点睛的作用。

                                                                              ***德天老师,祝大家学习愉快!***
    
    • 1

    背景图:

    在这里插入图片描述

    LOGO合成图:

    在这里插入图片描述

    代码块整理

    import cv2
    import numpy as np
    img = cv2.imread('img1/jing.jpg')
    img_big = cv2.imread('img1/mount_water.jpg')
    
    h,w,_ = img.shape
    roi = img_big[0:h,0:w]
    #1 mask是轮廓线条为黑,背景为白
    #2 mask是轮廓为白,背景为黑
    
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#logo转灰
    ret,mask=cv2.threshold(gray,200,255,cv2.THRESH_BINARY) #通过低于200变黑,变成黑白mask类型
    mask_inv=cv2.bitwise_not(mask)  #反转黑白处理
    
    
    #显示轮廓并镂空底图
    mask_and = cv2.bitwise_and(roi,roi,mask=mask)
    #无背景轮廓
    mask_small = cv2.bitwise_and(img,img,mask=mask_inv)
    #前后合并完成效果
    dst = cv2.add(mask_and,mask_small)
    img_big[0:h,0:w]=dst
    #依次显示
    cv2.imshow('mask',mask)
    cv2.imshow('mask_inv',mask_inv)
    cv2.imshow('mask_and',mask_and)
    cv2.imshow('mask_small',mask_small)
    cv2.imshow('mask_big',img_big)
    cv2.waitKey()
    cv2.destroyAllWindows()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    图像合成分层分析:

    1、获取roi,小图在大图上的映射区域
    在这里插入图片描述

    2、拿到白色背景,黑色轮廓的mask
    在这里插入图片描述

    3、拿到mask的黑白反转图mask_inv
    在这里插入图片描述

    4、通过数据运算bitwise_and,获取带有底图背景被镂空轮廓的图片
    在这里插入图片描述

    5、通过msk_inv结合运算bitwise_and,拿到仅显示轮廓的轮廓图mask_small
    在这里插入图片描述

    6、将4,5的背景图和轮廓图合并得到一块合成图大小与Logo图相当的除掉背景的合成图dst
    在这里插入图片描述

    7、将合并图dst,传递到背景图上roi位置
    在这里插入图片描述
    根据学习制作过程中出现的问题梳理总结。
    理解 mask_and = cv2.bitwise_and(roi, roi, mask=mask) 图片如下:
    第一个roi为输入的背景图映射图,第二个roi为使用bitwise_and运算显示的蓝天背景图,圆形圈起的图是mask_and结果图
    在这里插入图片描述
    理解mask_small = cv2.bitwise_small(img,img,mask=mask_inv)图片如下
    在这里插入图片描述

    鉴于涉及到问题较多,因此需要理解好每一步的图片代表含义。

  • 相关阅读:
    ISIS多区域实验简述
    最近的养猫总结
    vue serve及其与vue-cli-service serve之间的关系
    python闭包与装饰器
    virtio device type : Block Device
    C++语法基础(二)
    生活污水处理设备生产制造技术标准有哪些?
    Github每日精选(第35期):移动设备数据库Realm
    规则解读(二)| 本地资源检测 For Unreal
    python基础语法二(函数、列表)
  • 原文地址:https://blog.csdn.net/weixin_41704077/article/details/127645924