• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解python opencv图像混合算术运算

    图片相加 cv2.add()       

     要叠加两张图片,可以用 cv2.add() 函数,相加两幅图片的形状(高度 / 宽度 / 通道数)必须相同。
            numpy中可以直接用res = img + img1相加,但这两者的结果并不相同(看下边代码):
            add()两个图片进行加和,大于255的使用255计数.
            numpy会对结果取256(相当于255+1)的模:

    import numpy as np
    import cv2
     
    x = np.uint8([250])
    y = np.uint8([10])
     
    print(cv2.add(x, y)) # 250+10 = 260 => 255
    print(x + y) # 250+10 = 260 % (255 + 1) = 4

     如果是二值化图片(只有0和255两种值),两者结果是一样的(用numpy的方式更简便一些)。

    实验图片:

     add()后效果

     相减、相乘、相除:

     图像融合、混合addWeighted()

    图像混合 cv2.addWeighted() 也是一种图片相加的操作,只不过两幅图片的权重不一样,γ相当于一个修正值:

    img1 = cv2.imread('lena_small.jpg') 
    img2 = cv2.imread('opencv-logo-white.png') 
    res = cv2.addWeighted(img1, 0.6, img2, 0.4, 0)

     效果:

     α和β都等于1时,就相当于图片相加。

    按位运算

    按位操作包括按位与 / 或 / 非 / 异或操作,有什么用途呢?比如说我们要实现下图的效果:

            如果将两幅图片直接相加会改变图片的颜色,如果用图像混合,则会改变图片的透明度,所以我们需要 用按位操作。         首先来了解一下 掩膜(mask) 的概念:掩膜是用一副二值化图片对另外一幅图片进行局 部的遮挡,看下图就一目了然了:

     所以我们的思路就是把原图中要放logo的区域抠出来,再把logo放进去就行了:

    img1 = cv2.imread('lena.jpg') 
    img2 = cv2.imread('opencv-logo-white.png')
     
    # 把logo放在左上角,所以我们只关心这一块区域 
    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) 
     
    # 保留除logo外的背景 
    img1_bg = cv2.bitwise_and(roi, roi, mask=mask_inv) 
    dst = cv2.add(img1_bg, img2)# 进行融合 
    img1[:rows, :cols] = dst # 融合后放在原图上

     掩膜的概念在图像混合/叠加的场景下使用较多。

    上边我们使用了

    除了按位与、非运算还有:

    到此这篇关于详解python opencv图像混合算术运算的文章就介绍到这了,更多相关python opencv图像算术运算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python OpenCV处理图像之图像像素点操作
    • Python+OpenCV图片局部区域像素值处理详解
    • opencv-python基本图像处理详解
    • 超详细注释之OpenCV更改像素与修改图像通道
    上一篇:一小时学会TensorFlow2之基本操作1实例代码
    下一篇:Django中如何使用celery异步发送短信验证码详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解python opencv图像混合算术运算 详解,python,opencv,图像,混合,