`
huangyongxing310
  • 浏览: 499171 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

opencv 图像混合

 
阅读更多
opencv 图像混合


图片间的数学运算,如相加、按位运算等
OpenCV函数:cv2.add(), cv2.addWeighted(), cv2.bitwise_and()



图片相加(简单相加,超出就用最大值)
add(src1, src2, dst=None, mask=None, dtype=None)



图像混合(会改变图片的透明度)
addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)
res = cv2.addWeighted(img, 0.6, img2, 0.4, 0)

dst = α*img1 + β*img2 + γ

alpha:α
beta:β
gamma:γ
α和β都等于1时,就相当于图片相加


按位与
bitwise_and(src1, src2, dst=None, mask=None)

按位或
bitwise_or(src1, src2, dst=None, mask=None)

按位非
bitwise_not(src, dst=None, mask=None)


按位异或
bitwise_xor(src1, src2, dst=None, mask=None)


按位异或加掩膜(掩膜就是得到的结果与掩膜进行位与)
imggray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(imggray, 127, 255, cv2.THRESH_BINARY)
res = cv2.bitwise_xor(img,img2,mask=mask)
res2 = cv2.bitwise_xor(img, img2)
mask_inv = cv2.bitwise_not(mask)



# -*-encoding:utf-8-*-
import pytesseract
from PIL import Image
from PIL import ImageFilter
from PIL import ImageFont
from PIL import ImageDraw
import numpy as np
from PIL import Image

import cv2


def main():
    # 颜色空间转换
    img = cv2.imread("learn.jpg")
    img2 = cv2.imread("learn2.jpg")

    # =================================图片相加(简单相加,超出就用最大值)
    res = cv2.add(img,img2)

    # =================================图像混合(会改变图片的透明度)
    # addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)
    # dst = α * img1 + β * img2 + γ
    # alpha: α
    # beta: β
    # gamma: γ
    # α和β都等于1时,就相当于图片相加
    res = cv2.addWeighted(img, 0.6, img2, 0.4, 0)

    # =================================按位与
    # bitwise_and(src1, src2, dst=None, mask=None)
    res = cv2.bitwise_and(img,img2)

    # =================================按位或
    # bitwise_or(src1, src2, dst=None, mask=None)
    res = cv2.bitwise_or(img, img2)

    # =================================按位非
    # bitwise_not(src, dst=None, mask=None)
    res = cv2.bitwise_not(img)

    # =================================按位异或
    # bitwise_xor(src1, src2, dst=None, mask=None)
    res = cv2.bitwise_xor(img,img2)

    # =================================按位异或加掩膜(掩膜就是得到的结果与掩膜进行位与)
    imggray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    ret, mask = cv2.threshold(imggray, 127, 255, cv2.THRESH_BINARY)
    res = cv2.bitwise_xor(img,img2,mask=mask)
    res2 = cv2.bitwise_xor(img, img2)
    mask_inv = cv2.bitwise_not(mask)

    cv2.imshow('imggray', imggray)
    cv2.imshow('mask', mask)
    cv2.imshow('res', res)
    cv2.imshow('res2', res2)
    cv2.imshow('mask_inv', mask_inv)
    cv2.waitKey(0)



if __name__ == '__main__':
    main()



分享到:
评论

相关推荐

    QT+opencv图像混合程序 label显示对比

    在这个"QT+opencv图像混合程序 label显示对比"项目中,我们将探讨如何在QT的Widget界面中利用OpenCV进行图像混合,并通过label控件来展示对比效果。 首先,我们需要理解图像混合的基本概念。图像混合通常是指将两张...

    opencv图像混合实例代码下载

    在本资源中,"opencv图像混合实例代码下载"提供了深入理解和实践图像混合的教程。下面我们将详细探讨线性混合公式、图像混合的必要条件以及三种常见的图像混合方式。 线性混合是图像混合中最基础也最常用的方法。它...

    OpenCV 图像混合,在原始视频上添加png, GIF图,虚拟图像等

    总之,OpenCV图像混合是通过组合不同图像或视频帧来创建新视觉效果的强大工具。无论是简单的图像叠加还是复杂的动态GIF处理,OpenCV都能提供足够的灵活性和控制力。通过熟练掌握这些技术,你可以创建出富有创意的...

    QT+opencv图像混合程序

    QT+OpenCV图像混合程序是将两个或多个图像进行融合的一种技术,通常在计算机视觉、图像处理和机器学习领域有着广泛的应用。在这个程序中,我们主要关注的是`addWeighted`函数,它是OpenCV库中用于图像混合的核心工具...

    [opencv]005 简单图像混合

    【OpenCV图像混合技术详解】 在计算机视觉领域,OpenCV是一个强大的开源库,广泛用于图像处理和计算机视觉任务。在本教程中,我们将探讨“005 简单图像混合”这一主题,这涉及到如何使用OpenCV在两个或多个图像之间...

    python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)

    在Python的OpenCV库中,图像处理功能非常丰富,其中包括为图像添加边框以及实现图像混合。这两个功能在视觉效果的创建、图像编辑和动画制作中都有广泛应用。 **图像边框的实现** 图像边框的添加是通过`cv2....

    opencv图像处理MFC

    9. **图像混合**:通过OpenCV的像素级操作,可以实现图像的混合、合成,创造出新的视觉效果。 10. **文件保存**:处理完图像后,可以使用`cv::imwrite`将结果保存为图片文件,以便进一步分析或展示。 在实际开发中...

    OpenCV3-初级图像混合-线性混合操作

    本主题聚焦于OpenCV3中的一个基础概念:初级图像混合,特别是线性混合操作。这一章节从《OpenCV3编程入门》一书的第5章中提取,旨在帮助初学者理解如何通过线性混合将两张图像融合在一起。 线性混合是一种基本的...

    使用opencv进行图像融合

    这通常涉及图像的投影、重采样和混合。在OpenCV中,`cv::warpPerspective()`函数可用于将源图像映射到目标图像的坐标系。接着,我们可以使用不同的融合策略,如加权平均、直方图均衡化等,将多个图像的像素值结合在...

    基于opencv的混合高斯背景模型

    OpenCV库是开源计算机视觉库,包含了丰富的图像处理和计算机视觉算法。在OpenCV中,`cv::createBackgroundSubtractorMOG2`函数可用于创建混合高斯背景 subtractor 对象,该对象可以用于学习背景并检测前景物体。参数...

    opencv联合cuda进行图像混合

    根据给定的信息,本文将详细解释如何利用OpenCV与CUDA技术进行图像混合处理,并通过具体的代码示例来进一步阐述这一过程中的关键技术点。 ### 一、OpenCV与CUDA简介 #### 1. OpenCV(Open Source Computer Vision ...

    OPENCV图像处理的函数说明.pdf

    - **Sobel算子**:用于计算一阶、二阶或混合图像差分,可以检测图像的边缘。例如`cvSobel()`函数,输入图像`src`和输出图像`dst`,以及x方向和y方向的差分阶数。 - **Laplace算子**:用于检测图像的二阶导数,能...

    【C++】OpenCV多通道图像混合示例程序 by浅墨

    浅墨出品,分享精神至上~ ...利用OpenCV载入了dota2英雄剑圣的原画和dota2 logo,进行多通道图像混合操作。 博文《【OpenCV入门教程之五】 分离颜色通道&多通道图像混合》的配套详细注释源代码。 博文链接: ...

    Matlab调用opencv实现混合高斯模型

    本教程将详细解释如何在MATLAB环境中调用OpenCV库来实现混合高斯模型进行背景建模。 首先,让我们了解混合高斯模型。GMM是一种概率密度函数的组合,它由多个高斯分布构成,每个高斯分布代表数据的一个潜在模式。在...

    图像混合.zip

    线性混合:对两幅图像(f0(x)和f1(x))或两段视频(同样为(f0...图像混合中通过组合一些给定的单通道数组,将这些孤立的单通道数组合并成一个多通道的数组,从而创建出一个由多个单通道阵列组成的多通道阵 列。

    openCV实现图像拼接

    这通常涉及到图像的混合或权重分配。OpenCV的`cv::addWeighted`函数可以帮助我们实现这一目标,通过给每个像素分配适当的比例来自两张图片。 4. **图像输出**:最后,将处理后的图像保存为新的单张图片。OpenCV的`...

    【OpenCV】ROI区域&图像混合例程by浅墨

    利用OpenCV载入了dota2英雄幻影刺客的原画和dota2 logo,进行ROI区域定义和图像混合处理的一个非常有趣的示例程序。 博文《【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析》的配套详细注释源代码。 ...

    数字图像处理-3.7混合空间增强法-骨骼图 基于opencv3.4.3的实现

    基于opencv3.4.3的,冈萨雷斯的《数字图像处理》第三章3.7小节混合空间增强法的实现。欢迎大家拍砖,以求斧正!o(* ̄︶ ̄*)o 若下载代码的话,记得改一下图片路径,我没做图片是否为空的判断,直接运行,图片路径...

    OPENCV图像处理的函数说明

    ### OPENCV图像处理的函数说明 #### 概述 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了大量的图像处理和计算机视觉算法。这些算法被广泛应用于研究、开发以及产品中,涉及领域...

    OpenCV-python OpenCV 图像上的算数运算1

    OpenCV 提供了 cv2.addWeighted() 函数来实现图像混合运算。例如: ``` dst = cv2.addWeighted(img1, 0.7, img2, 0.3, 0) cv2.imshow('dst', dst) cv2.waitKey(0) cv2.imwrite('3.png', dst) cv2.destroyAllWindows...

Global site tag (gtag.js) - Google Analytics