opencv-python图像处理学习随笔:图像和标量ADD相加中的标量和图像通道数相同元素数量理解

关于cv2.addWeighted()函数《python图像处理篇》 引言:在我们进行P图的时候,经常做的就是将一个表情包放在一张图上,相对于是遮住指定部分,然而在图像处理中,会有这么一种操作,就是将两幅图像按照不同的比例合成一张图像,这就是我们今天的主角函数cv2.addWeighted()。 1.函数cv2.addWeighted() 函数cv2.addWeighted()的主要功能就是将两幅图像合成为一幅图像,下面给出一个简单的例子便于理解。 先看效果: 原图1(图像来自网络,如有冒犯、侵权请联系删除) 原图2 ... 阅读详情
☞ ░ 前往老猿Python博文目录 ░

关于图像和标量相加函数add的说明中有如下一段话:

在这里插入图片描述
其中标黄色部分说明图像和标量相加处理时,其中一句英文说明是:

Sum of an array and a scalar when src2 is constructed from Scalar or has the same number of elements as src1.channels()

老猿翻译理解为:
当src2是标量或与src1通道数具有相同数量的元素时(如元组或列表对象),将图像数组和标量相加。

其中针对“与src1通道数具有相同数量的元素”这句话老猿反复进行了测试,发现其实这句说法有问题,无论src1通道数是BGR三通道还是BGRA四通道,实际上在opencv处理时都强制认为是四通道,因此需要相加的列表或元组必须有4个元素。

案例:

>>> import cv2
>>> imgBeauty = cv2.imread(r'F:\pic\beauty.jpg')
>>> img = imgBeauty[0:5, 0:5]
>>> img.shape #结果表明图像是3通道
(5,5,3)
>>> import cv2
>>> import numpy as np
>>> imgBeauty = cv2.imread(r'F:\pic\beauty.jpg')
>>> img = imgBeauty[0:5, 0:5]
>>> mask = np.zeros([5, 5], dtype=np.uint8)
>>> cv2.add(img,(1,1,1,1))
array([[[231, 226, 225],
        [231, 226, 225],
        [231, 226, 225],
        [230, 225, 224],
        [228, 223, 222]],

       [[232, 227, 226],
        [231, 226, 225],
        [231, 226, 225],
        [231, 226, 225],
        [230, 225, 224]],

       [[232, 227, 226],
        [232, 227, 226],
        [232, 227, 226],
        [232, 227, 226],
        [231, 226, 225]],

       [[231, 226, 225],
        [232, 227, 226],
        [232, 227, 226],
        [232, 227, 226],
        [231, 226, 225]],

       [[232, 227, 226],
        [233, 228, 227],
        [232, 227, 226],
        [232, 227, 226],
        [231, 226, 225]]], dtype=uint8)

如果将上面的cv2.add(img,(1,1,1,1))换成cv2.add(img,(1,1,1))则报错。

更多OpenCV-Python的介绍请参考专栏《OpenCV-Python图形图像处理》相关文章。

关于老猿的付费专栏

老猿的付费专栏《使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏都适合有一定Python基础但无相关知识的小白读者学习。

付费专栏文章目录:《moviepy音视频开发专栏文章目录》、《使用PyQt开发图形界面Python应用专栏目录》。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

跟老猿学Python、学OpenCV!

☞ ░ 前往老猿Python博文目录 ░
OpenCV学习之cv2.addWeighted函数 在图像处理和计算机视觉中,图像融合是一种常见的操作。函数是 OpenCV 提供的用于对两幅图像进行加权融合的函数,通过对图像像素值进行线性加权和偏移,可以实现图像的混合和过渡效果。该函数常用于图像的透明叠加、图像特效等场景。 阅读详情

相关推荐

ViT注意力可视化:基于Grad-CAM原理的Vision Transformer可解释性实现

在深度学习模型的可解释性研究中,梯度加权类激活映射(Grad-CAM)是一种广泛使用的可视化技术,它通过计算模型预测分数相对于特征图的梯度,生成热力图来揭示模型的决策依据。其核心原理是利用梯度信息量化特征图中每个空间位置对最终预测的贡献度,从而将模型的“黑盒”决策过程转化为直观的视觉解释。这一技术在卷积神经网络(CNN)中已成熟应用,为模型调试、偏见发现和可信AI系统构建提供了关键支撑。随着Vision Transformer(ViT)在计算机视觉领域的崛起,其基于自注意力机制的全新架构对传统Grad-CA

weixin_30902251的博客 505

cv2.addWeighted用法

cv2.addWeighted 是 OpenCV 中的一个函数,用于将两幅图像进行加权求和。 使用方法: cv2.addWeighted(src1, alpha, src2, beta, gamma, dst) src1: 第一幅图像 alpha: 第一幅图像的权重(取值范围为 0 到 1) src2: 第二幅图像 beta: 第二幅图像的权重(取值范围为 0 到 1) gamma: 求和后的...

weixin_35755188的博客 1853

8-OpenCVSharp —- Cv2.AddWeighted()函数功能(对两张图像进行加权合成)详解

是 OpenCVSharp 中非常实用的图像处理函数,它通过加权平均的方式将两张图像融合在一起,并且可以通过调整权重(alphabeta)和常数偏移量(gamma)来控制最终图像的效果。常见应用包括图像融合、透明度调整、亮度调整等。

weixin_45590420的博客 1009

详解cv2.addWeighted函数【使用 OpenCV 添加(混合)两个图像-Python版本】

有的时候我们需要将两张图片在alpha通道进行混合,比如深度学习数据集增强方式MixUp。OpenCV的提供了相关操作,此篇博客将详细介绍这个函数,并给出代码示例。🚀🚀。

KRISNAT 4427

ConvNeXt V2图像分类实战:从环境搭建到模型部署全流程指南

卷积神经网络(CNN)作为计算机视觉的经典架构,通过局部连接和权值共享高效提取图像特征。其核心原理在于利用卷积核在输入数据上滑动进行特征映射,具有平移不变性和参数效率高的优势。在Transformer架构席卷CV领域的背景下,ConvNeXt V2通过引入全卷积掩码自编码器(FCMAE)预训练策略,显著提升了纯卷积模型的性能上限,证明了CNN架构在现代化训练方法下仍具强大竞争力。该技术在工程实践中展现出优异的硬件友好性和部署便利性,特别适用于资源受限场景下的图像分类任务,如森林图像分类、病虫害识别等实际应用

weixin_34320159的博客 569

OpenCV-Python图像融合cv2.addWeighted权重加法函数详解.rar

OpenCV-Python图像融合cv2.addWeighted权重加法函数详解.rar

OpenCV-Python图形图像处理专栏文章目录

OpenCV-Python setMouseCallback回调函数中图像变量img的传递方法解析 OpenCV-Python图像乘法运算cv2.multiply函数详解及像素值溢出归一化处理 OpenCV-Python图像位与运算bitwise_and函数详解 OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减法的差异对比 OpenCV-Python图像的加法运算cv2.add函数详解 OpenCV-Python图像融合cv2.addWeighted权重加法函数详解 Op

老猿Python 6717

华为2019秋招笔试Java实现(2)

华为2019秋招笔试Java实现(2) 笔试日期2019年8月14日 第二题(200分) 题目描述 某程序员小A,有一种表格数据需要存储在文件中。表格中的每一行,由若干个字段组成,每个字段可以是整数或字符串(字符串只包含数字、字母以及特殊字符!@#%^&*()",)。小A设计了一种存储格式,采用文本的方式对表格数据进行存储。文本文件中的每一行,代表了表格数据中的一行数据。具体格式描述如下: 1、采用逗号分隔不同的字段(逗号前后无空格); 2、数字直接采用10进制的文本存储; 3、字符串的存储规则如下

hewhys的博客 1547

python统计图像像素值低于某一个数的个数_OpenCV-Python图像乘法运算cv2.multiply函数详解及像素值溢出归一化处理...

一、引言图像的乘法有三种,具体参考《对OpenCV中3种乘法操作的理解掌握》,我们在此只关注最后一种,也即cv2.multiply函数提供的乘法。对于两个图像矩阵A、B来说:该种方式的乘法计算方法如下: 二、图像乘法cv2.multiply的语法调用语法:multiply(src1, src2, dst=None, scale=None, dtype=None)参数说明:OpenCV手册介绍的乘法...

weixin_39775872的博客 847

Amesim(五):单个悬架系统搭建

一、组成 单个悬架系统组成包括:端子,质量块*2,弹簧,阻尼器,速度路面反馈,路面激励。 二、搭建 打开Amesim,在 library 选择 1D Mechanical 选择质量模块,添加到skech中,并按 ctrl+r 旋转质量块,将箭头朝上,设置规定的力传递正方向 添加弹簧阻尼器,与质量块连接 添加VX模块,将路面的激励传递转化为速度和位移,传递给悬架系统 在...

林小川的博客 7166

告别时钟树平衡噩梦:在Innovus中巧妙设置stop/ignore pin来优化分段时钟网络

本文深入探讨了在Innovus工具中利用stop/ignore pin优化分段时钟树网络的高阶技巧。针对数字IC后端设计中的时钟树平衡难题,详细解析了特殊引脚属性的战略应用场景和配置方法,帮助工程师有效解决SoC设计中复杂的时钟结构问题,显著提升时序收敛效率。

weixin_30836759的博客 286

OpenCV(Python 版)

计算机中的图像本质上是由无数像素组成的网格,彩色图像通常通过红(R)、绿(G)、蓝(B)三个独立的颜色通道来记录信息,每个通道都是一个二维数字矩阵,矩阵中的数值代表对应位置像素该颜色的亮度(通常为 0-255),三个通道的数值组合决定了像素最终呈现的颜色,计算机存储的就是这些通道矩阵数据,以及图像的宽、高、通道数等元信息。

qq_32381773的博客 408

香橙派5玩转SATA SSD:一个被忽略的overlays配置项,让你的Ubuntu系统飞起来

本文详细介绍了如何在香橙派5上通过配置`overlays=ssd-sata`启用SATA SSD作为系统启动盘,大幅提升Ubuntu系统的性能。文章深入解析了设备树覆盖的工作原理,提供了完整的配置流程和性能优化建议,帮助开发者充分发挥香橙派5的硬件潜力。

weixin_30787531的博客 218

OpenCV

开运算会去掉原图中的 “亮小点点”(亮噪点),用原图减去开运算图,剩下的就是这些被去掉的「亮噪点 / 局部亮区」,提取图像中比周围区域更亮的小区域(比如黑背景上的白噪点、文字边缘的亮毛刺)。闭运算会填充原图中的 “暗小点点”(暗空洞),用闭运算图减去原图,剩下的就是这些被填充的「暗噪点 / 局部暗区」,提取图像中比周围区域更暗的小区域(比如白背景上的黑噪点、文字内部的暗空洞)。,专门用于检测图像边缘 —— 它通过计算像素在 X(横向)和 Y(纵向)方向的灰度变化率(梯度),找到像素值突变的区域(边缘)。

weixin_56766801的博客 638

【上海大学计算机组成原理实验报告】七、程序转移机制

学习实现程序转移的硬件机制//掌握堆栈寄存器的使用//手动方式实现子程序调用转移过程//手动方式实现子程序返回转移过程//编程实现`OUT`寄存器交替显示`11`和`55`//若要求`11`和`55`各显示`50`次后停机,应该如何修改程序?//根据实验指导书的相关内容,实验箱系统的程序转移硬件机制在于,当`LDPC`有效时,如果此时`DUBS`上的值就是转移的目标地址,则此目标地址被打入`PC`,从而实现程序的转移;若`LDPC`为`0`是附带条件的,就形成“条件转移”。

HackerKevon的博客 2471

maxwell与steady state thermal 通过workbench耦合仿真

文章目录maxwellsteady state thermal maxwell 1加入maxwell并打开 2导入模型 3选择求解器类型:涡流求解器eddy current 4修改模型名字不能带_等特殊符号 5为模型赋材料 6设立3D边界,各边电流进出方向为0其余方向300 7设置激励条件,可设置电流大小,相位,方向 8设置集肤深度,选取中间铜导体的体然后设置,如何设置看帮助文档 9求解设置 迭代步数 收敛精度 交流电频率 10验证条件满足计算 11求解 发现无法求解,删除ai

roymustang的博客 9199

PyTorch张量核心操作指南:从图像处理到CV实战避坑

张量是深度学习框架中的核心数据结构,本质上是多维数组的扩展,用于高效表示和处理高维数据。其核心原理在于通过统一的数学抽象,封装了数据存储、计算与自动微分功能,为构建复杂神经网络提供了基础。在计算机视觉领域,张量的技术价值尤为突出,它能够将图像、视频等视觉数据表示为统一的多维数组形式,从而支持高效的并行计算与GPU加速。典型的应用场景包括图像分类、目标检测与语义分割等任务,其中数据预处理、模型输入输出以及梯度计算都深度依赖于张量操作。本文聚焦于PyTorch框架,深入解析张量在图像处理中的核心操作,如形状变换

453

告别编译噩梦:Vcpkg+Cmake一站式集成Tesseract-OCR C++开发环境(Windows)

本文详细介绍了如何在Windows系统上使用Vcpkg和CMake快速集成Tesseract-OCR C++开发环境,解决传统编译过程中的依赖问题。通过一键安装和自动化配置,开发者可以高效搭建OCR识别系统,支持中英文识别,并提供了常见问题的解决方案和进阶技巧。

weixin_29009339的博客 231

Python项目实战:基于matplotlib与mayavi的3D可视化(点云+等值面)

3D可视化是一种用于呈现三维数据的方法,它可以帮助我们更好地理解和分析复杂的空间结构和关系。在科学、工程、医学和其他领域,3D可视化常用于展示和研究体数据、空间模型、分子结构等。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 7768

YOLO创新点改进点的消融实验设计规范

YOLO改进的消融实验是一种重要的方法,用于评估和验证模型中不同组件的影响。在进行YOLO改进的消融实验时,我们可以选择一些可能的改进点,比如Backbone网络、Anchor框设计和损失函数设计,然后通过实验来分析它们对模型性能的影响。首先,我们需要确定实验设计。对于每个改进点,我们将设计多个实验组,并针对每个实验组训练模型并进行性能评估。这里以三个改进点为例进行说明:改进点1:Backbone网络 (改进点2:Anchor框设计 (改进点3:损失函数设计 (

crasher123的博客 2909

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

CANN ops-cv 计算机视觉算子库深度实践:从图像处理算子分类到昇腾NPU硬件适配优化的全链路工程实战

1、删除所有容器 docker rm `docker ps -a -q` 2、删除所有镜像 docker rmi `docker images -q` 3、按条件删除镜像 没有打标签(删掉none镜像)  docker rmi `docker images -q | awk '/^<none>/ { print $3 }'`  镜像名包含关键字  docker rmi --forc...

weixin_43393161的博客 195

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

K-Prism:统一医学图像分割框架,终结多模型部署困境

医学图像分割是计算机视觉在医疗领域的关键应用,旨在从CT、MRI等影像中精准识别器官、病灶区域。其核心原理是通过深度学习模型学习图像特征与解剖结构的映射关系。传统方法面临严峻挑战:针对不同成像设备、解剖部位的数据需训练独立模型,导致模型仓库爆炸、部署复杂、维护成本高昂。K-Prism框架通过引入可学习的先验诱导模块,实现了从‘静态模型’到‘动态自适应框架’的范式转变。该模块基于核方法动态分析输入图像特性,并生成调制参数对共享主干网络进行微调,使单一框架能适应多模态数据分布差异。这一技术显著提升了工程效率与资

weixin_33749131的博客 313

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

对抗弗雷歇距离损失:解决FID过优化,提升生成图像视觉质量

在图像生成领域,评估生成模型质量是核心挑战。弗雷歇距离(FID)作为主流评估指标,通过比较生成图像与真实图像在特征空间分布的差异来衡量生成质量。其原理是基于预训练网络提取特征,并假设特征服从高斯分布,通过计算两个分布之间的距离得到分数。然而,FID存在固有缺陷,例如仅匹配一阶和二阶矩,以及对特征分布的强假设,这导致模型可能通过过度优化FID分数来“欺骗”指标,出现“高分低能”现象,即分数漂亮但生成图像视觉质量低下,表现为细节模糊或结构扭曲。对抗弗雷歇距离损失(AFD)的创新之处在于,它将FID从一个静态评估

weixin_30920513的博客 451

NumPy数组维度与形状详解:从ndim、shape到数据操作实战

在Python数据科学和机器学习领域,理解多维数组(ndarray)的结构是进行高效数据处理的基础。多维数组的核心属性是其维数(ndim)和形状(shape),它们共同定义了数据在内存中的组织方式。ndim表示数组的维度数量,如标量、向量、矩阵或更高维张量;shape则是一个元组,精确描述了每个维度上的元素个数。掌握这些概念对于数据验证、索引切片、广播机制以及数组重塑等操作至关重要,能有效避免常见的ValueError和维度不匹配错误。在实际应用中,无论是图像处理、CSV文件加载还是模型输入预处理,准确获取

weixin_34293911的博客 412

杂谈1——深度学习简易知识积累

浅浅记录一些知识,一方面做一些分享与自己的思考,另一方面作为笔记记录下来。

qq_45848817的博客 644

李沐课代码部分——续集

本文介绍了两种防止机器学习模型过拟合的技术:权重衰退和丢弃法。权重衰退通过L2正则化限制模型参数的大小,代码演示了如何在训练过程中加入L2惩罚项来控制权重增长。丢弃法则通过在训练时随机"关闭"部分神经元来增强模型鲁棒性,文中详细解析了丢弃层的实现逻辑和神经网络类的构建方法。两种技术都通过PyTorch实现,并包含完整的代码示例和关键机制解析,如L2范数计算、丢弃层的伯努利分布实现、网络结构定义等,有效提升了模型的泛化能力。

ExraL的博客 89
上一篇: opencv-python图像处理学习随笔:cv2.add函数两个标量相加为什么返回一4个元素的二维数组
下一篇: OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减法的差异对比
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值