返回顶部
首页 > 资讯 > 后端开发 > Python >详解python opencv图像混合算术运算
  • 843
分享到

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

2024-04-02 19:04:59 843人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录图片相加 cv2.add()       按位运算图片相加 cv2.add() 

图片相加 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()后效果

 相减、相乘、相除:

  •  subtract(img1,img2)  # 相减,可以用于目标检测m
  • ultiply(img1,img2) # 相乘
  • divide(img1,img2) # 相除

 图像融合、混合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 # 融合后放在原图上

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

上边我们使用了

  • 按位与 bitwise_and(roi, roi, mask=mask_inv)
  • 非运算 bitwise_not(mask)

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

  • 或运算 bitwise_or(img1,img2)
  • 异或运算 bitwise_xor(img1,img2) 

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

--结束END--

本文标题: 详解python opencv图像混合算术运算

本文链接: https://lsjlt.com/news/134555.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解python opencv图像混合算术运算
    目录图片相加 cv2.add()       按位运算图片相加 cv2.add() ...
    99+
    2024-04-02
  • 详解图像上的OpenCV算术运算
    目录OpenCV 简介添加图像图像减法位运算图像的 AND 位运算图像的 OR 位运算图像的NOT位运算图像的 XR 位运算OpenCV的结论OpenCV 简介 图像可以进行算术运算...
    99+
    2024-04-02
  • Python中图像算术运算的示例详解
    目录介绍算术运算:图像相加算术运算:图像减法位运算介绍 还记得你在小学时学习如何加减数字吗?现在,你也可以对图像做同样的事情! 输入图像可以进行算术运算,例如加法、减法和按位运算(A...
    99+
    2024-04-02
  • Python图像处理之图像算术与逻辑运算详解
    目录一.图像加法运算二.图像减法运算三.图像与运算四.图像或运算五.图像非运算六.图像异或运算七.总结一.图像加法运算 图像加法运算主要有两种方法。第一种是调用Numpy库实现,目标...
    99+
    2024-04-02
  • Python-OpenCV教程之图像的位运算详解
    1、按位取反bitwise_not() 按位取反就是将数值根据每个bit位1变0,0变1,比如0xf0按位取反就变成了0x0f,如果是uint8类型的数据,取反前...
    99+
    2024-04-02
  • Python图像运算之顶帽运算和底帽运算详解
    目录一.图像顶帽运算二.图像底帽运算三.总结一.图像顶帽运算 图像顶帽运算(top-hat transformation)又称为图像礼帽运算,它是用原始图像减去图像开运算后的结果,常...
    99+
    2024-04-02
  • Python图像运算之图像点运算与灰度化处理详解
    目录一.图像点运算概念二.图像灰度化处理三.基于像素操作的图像灰度化处理1.最大值灰度处理方法2.平均灰度处理方法3.加权平均灰度处理方法四.总结一.图像点运算概念 图像点运算(Po...
    99+
    2024-04-02
  • 详解Python图像形态学处理(开运算,闭运算,梯度运算)
    目录一.图像开运算二.图像闭运算三.图像梯度运算四.总结这篇文章将继续介绍开运算、闭运算和梯度运算。数学形态学(Mathematical Morphology)是一种应用于图像处理和...
    99+
    2024-04-02
  • OpenCV学习之图像的叠加与混合详解
    目录1.图像叠加2.图像混合本文是OpenCV图像视觉入门之路的第9篇文章,本文详细的在图像上面进行了图像叠加图像混合等操作。 1.图像叠加 图片叠加一般加入水印用的特别多,比如视...
    99+
    2023-02-15
    OpenCV图像叠加 OpenCV图像混合 OpenCV图像
  • 解决opencv中算术运算报错: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cp
    这几天使用opencv做一些图像处理的问题,进行到算术运算时就被卡住了,上网搜索总是不能解决我的问题。最后通过不断的尝试,终于得到解决! 报错提示:OpenCV(4.6.0) D:\a\opencv-python\opencv-pyth...
    99+
    2023-09-26
    opencv python 计算机视觉
  • Python图像运算之图像阈值化处理详解
    目录一.图像阈值化二.固定阈值化处理1.二进制阈值化2.反二进制阈值化3.截断阈值化4.阈值化为05.反阈值化为0三.自适应阈值化处理四.总结一.图像阈值化 图像阈值化(Binari...
    99+
    2024-04-02
  • Python图像运算之图像灰度直方图对比详解
    目录一.灰度增强直方图对比二.灰度减弱直方图对比三.图像反色直方图对比四.图像对数变换直方图对比五.图像阈值化处理直方图对比六.总结一.灰度增强直方图对比 图像灰度上移变换使用的表达...
    99+
    2024-04-02
  • Python图像运算之图像灰度线性变换详解
    目录一.灰度线性变换二.图像灰度上移变换三.图像对比度增强变换四.图像对比度减弱变换五.图像灰度反色变换六.总结一.灰度线性变换 图像的灰度线性变换是通过建立灰度映射来调整原始图像的...
    99+
    2024-04-02
  • Python实例解析图像形态学运算技术
    1 图像形态学运算 在Python OpenCV图像处理之图像滤波特效详解中我们将图像滤波进行了以下分类: 邻域滤波 线性滤波 非线性滤波 频域滤波 ...
    99+
    2024-04-02
  • OpenCV图像算法实现图像切分图像合并示例
    目录将一张图片切分成多个小图片并将小图片合并为原图图像切分图像合并验证友情提示将一张图片切分成多个小图片并将小图片合并为原图 最近用到一个功能,需要将一张原图切分成多个小图像,然后对...
    99+
    2024-04-02
  • OpenCV图像算法怎么实现图像切分图像合并
    本篇内容介绍了“OpenCV图像算法怎么实现图像切分图像合并”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将一张图片切分成多个小图片并将小图...
    99+
    2023-06-30
  • Python中图像算术与逻辑运算的示例分析
    小编给大家分享一下Python中图像算术与逻辑运算的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.图像加法运算图像加法运算主要有两种方法。第一种是调用...
    99+
    2023-06-29
  • OpenCV学习之图像梯度算子详解
    目录1.Sobel算子2.Scharr算子3.laplacian算子本文是OpenCV图像视觉入门之路的第12篇文章,本文详细的介绍了图像梯度算子的各种操作,例如:Sobel算子Sc...
    99+
    2023-02-15
    OpenCV图像梯度算子 OpenCV 算子 OpenCV图像
  • Python图像运算之图像灰度非线性变换详解
    目录一.图像灰度非线性变换二.图像灰度对数变换三.图像灰度伽玛变换四.总结一.图像灰度非线性变换 原始图像的灰度值按照DB=DA×DA/255的公式进行非线性变换,其代码...
    99+
    2024-04-02
  • Python图像运算之腐蚀与膨胀详解
    目录前言一.形态学理论知识二.图像腐蚀三.图像膨胀四.总结前言 这篇文章将详细讲解开始图像形态学知识,主要介绍图像腐蚀处理和膨胀处理。数学形态学(Mathematical Morph...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作