【OpenCV 例程200篇】14. 图像与标量相加(cv2.add)

专栏地址:『youcans 的 OpenCV 例程 200 篇』
文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』


【youcans 的 OpenCV 例程 200 篇】14. 图像与标量相加(cv2.add)


函数 cv2.add() 用于图像的加法运算。

函数说明:

cv2.add(src1, src2 [, dst[, mask[, dtype]]) → dst

函数 cv2.add() 对两张相同大小和类型的图像进行加法运算,或对一张图像与一个标量进行加法运算。

对一张图像与一个标量相加时,则将图像所有像素的各通道值分别与标量的各通道值相加。

参数说明:

  • scr1, scr2:进行加法运算的图像,或一张图像与一个 numpy array 标量
  • dst:输出的图像,可选项,默认值为 None
  • mask:掩模图像,8位灰度格式;掩模图像数值为 0 的像素,输出图像对应像素的各通道值也为 0。可选项,默认值为 None
  • dtype:图像数组的深度,即每个像素值的位数,可选项
  • 返回值:dst,运算结果图像,ndarray 多维数组

注意事项:

  1. OpenCV 加法和 numpy 加法之间有区别:cv2.add() 是饱和运算(相加后如大于 255 则结果为 255),而 Numpy 加法是模运算。
  2. 使用 cv2.add() 函数对两张图片相加时,图片的大小和类型(通道数)必须相同。
  3. 使用 cv2.add() 函数对一张图像与一个标量相加,标量是指一个 1x3 的 numpy 数组,相加后图像整体发白。

基本例程:1.23 图像与标量相加

# 1.23 图像的加法 (与标量相加)img1 = cv2.imread("../images/imgB1.jpg")  # 读取彩色图像(BGR)img2 = cv2.imread("../images/imgB3.jpg")  # 读取彩色图像(BGR)Value = 100  # 常数# Scalar = np.array([[50., 100., 150.]])  # 标量Scalar = np.ones((1, 3), dtype="float") * Value  # 标量imgAddV = cv2.add(img1, Value)  # OpenCV 加法: 图像 + 常数imgAddS = cv2.add(img1, Scalar)  # OpenCV 加法: 图像 + 标量print("Shape of scalar", Scalar)for i in range(1, 6):x, y = i*10, i*10print("(x,y)={},{}, img1:{}, imgAddV:{}, imgAddS:{}".format(x,y,img1[x,y],imgAddV[x,y],imgAddS[x,y]))plt.subplot(131), plt.title("1. img1"), plt.axis('off')plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB))  # 显示 img1(RGB)plt.subplot(132), plt.title("2. img + constant"), plt.axis('off')plt.imshow(cv2.cvtColor(imgAddV, cv2.COLOR_BGR2RGB))  # 显示 imgAddV(RGB)plt.subplot(133), plt.title("3. img + scalar"), plt.axis('off')plt.imshow(cv2.cvtColor(imgAddS, cv2.COLOR_BGR2RGB))  # 显示 imgAddS(RGB)plt.show()

例程说明 1.23:

本例程运行结果如下。

Shape of scalar [[150. 150. 150.]]
(x,y)=10,10, img1:[ 9  9 69], imgAddV:[159   9  69], imgAddS:[159 159 219]
(x,y)=20,20, img1:[  3 252 255], imgAddV:[153 252 255], imgAddS:[153 255 255]
(x,y)=30,30, img1:[  1 255 254], imgAddV:[151 255 254], imgAddS:[151 255 255]
(x,y)=40,40, img1:[  1 255 254], imgAddV:[151 255 254], imgAddS:[151 255 255]
(x,y)=50,50, img1:[  1 255 255], imgAddV:[151 255 255], imgAddS:[151 255 255]
  • 注意 cv2.add() 对图像与标量相加时,“常数” 与 “标量” 的区别:
  • 将图像与一个常数 value 相加,只是将 B 通道即蓝色分量与常数相加,而 G、R 通道的数值不变,因此图像发蓝。
  • 将图像与一个标量 scalar 相加,“标量” 是指一个 1x3 的 numpy 数组,此时 B/G/R 通道分别与数组中对应的常数相加,因此图像发白。
  • 标量 numpy 数组的形式为:np.array([[c1, c2, c3]]),常数 c1,c2,c3 可以相同或不同。

在这里插入图片描述

(本节完)


【第2章:图像的数值运算】
13. 图像的加法运算(cv2.add)
14. 图像与标量相加(cv2.add)
15. 图像的加权加法(cv2.addWeight)
16. 不同尺寸的图像加法
17. 两张图像的渐变切换


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
欢迎关注专栏: 『youcans 的 OpenCV 例程 200 篇』
更多内容请见:>『youcans 的 OpenCV 例程200篇 - 总目录』(https://blog.csdn.net/youcans/article/details/125112487)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UFLDL之Softmax回归

Softmax回归 Contents [hide]1 简介2 代价函数3 Softmax回归模型参数化的特点4 权重衰减5 Softmax回归与Logistic 回归的关系6 Softmax 回归 vs. k 个二元分类器7 中英文对照8 中文译者 简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模…

【OpenCV 例程200篇】15. 图像的加权加法(cv2.addWeight)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】15. 图像的加权加法(cv2.addWeight) 函数 cv2.addWeight() 用于图像的加权加法运算。 函数说…

【OpenCV 例程200篇】16. 不同尺寸的图像加法

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】16. 不同尺寸的图像加法 函数 cv2.add() 用于图像的加法运算, 对两张相同大小和类型的图像进行加法运算&…

二维数据的白化处理

二维数据的白化处理 这篇博客实现起来比较简单,首先先去下载pca_2d.zip,然后打开pca_2d.m改代码,具体代码见下面close all%%%% Step 0: Load data% We have provided the code to load data from pcaData.txt into x.% x is a 2 * 45 matri…

【youcans 的图像处理学习课】4. 图像的叠加与混合

专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 【youcans 的图像处理学习课】4. 图像的叠加与混合 文章目录【youcans 的图像处理学习课】4. 图像的叠加与混合1. 图像的加法运算基本例程:1.22 图像…

PCA白化

自然图片的PCA白化 在这个练习里面我们将实现PCA和ZCA白化。首先先下载这个文件pca_exercise.zip, 然后我们解压它,并用matlab打开它,我们只需要更改pca_gen.m.这个文件。 然后把代码改成下面这个形式 %% %% Step 0a: Load data % Here we provide th…

【OpenCV 例程200篇】17. 两张图像的渐变切换

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】17. 两张图像渐变切换 函数 cv2.addWeight() 用于图像的加权加法运算。 函数说明: cv2.addWeighted(sr…

深度网络概览

深度网络概览 Contents [hide]1 概述2 深度网络的优势3 训练深度网络的困难 3.1 数据获取问题3.2 局部极值问题3.3 梯度弥散问题 4 逐层贪婪训练方法 4.1 数据获取4.2 更好的局部极值 5 中英文对照6 中文译者 概述 在之前的章节中,你已经构建了一个包括输入层、隐…

【OpenCV 例程200篇】18. 图像的掩模加法(mask)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】18. 图像的掩模加法 图像掩模(image mask),也常被写成 “图像掩膜”,是…

【OpenCV 例程200篇】19. 图像的圆形遮罩

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】19. 图像的圆形遮罩 图像掩模(image mask),也常被写成 “图像掩膜”,是…

【OpenCV 例程200篇】20. 图像的按位运算(cv2.bitwise)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】20. 图像的按位运算 函数 cv2.bitwise 提供了图像的位运算,对图像的像素点值按位操作,快速高效…

栈式自编码算法

栈式自编码算法 Contents [hide]1 概述2 训练3 具体实例4 讨论5 中英文对照6 中文译者 概述 逐层贪婪训练法依次训练网络的每一层,进而预训练整个深度神经网络。在本节中,我们将会学习如何将自编码器“栈化”到逐层贪婪训练法中,从而预训练…

【OpenCV 例程200篇】21. 图像的叠加

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】21. 图像的叠加 两张图像直接进行加法运算后图像的颜色会改变,通过加权加法实现图像混合后图像的透明度会改变,都不能实现图像的叠加。 实现图像的叠加,需要综合运用图像阈值…

微调多层自编码算法

微调多层自编码算法 Contents [hide]1 介绍2 一般策略3 使用反向传播法进行微调4 中英文对照5 中文译者 介绍 微调是深度学习中的常用策略,可以大幅提升一个栈式自编码神经网络的性能表现。从更高的视角来讲,微调将栈式自编码神经网络的所有层视为一个…

【OpenCV 例程200篇】22. 图像添加非中文文字(cv2.putText)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】22. 图像添加非中文文字 函数 cv2.putText() 用于在图像上绘制文本字符串,即添加文字。 OpenCV 不支持显示中文字符,使用 cv2.putText() 时添加的文本字符串不能包含中文字符…

自我学习

自我学习 今天让我们来完成自我学习的代码。完成这个代码需要结合稀疏自编码和softmax分类器,具体的可以看我以前的博客。依赖MNIST DatasetSupport functions for loading MNIST in MatlabStarter Code (stl_exercise.zip) 第一步:生成相应的输入和测试数据集这需要…

【OpenCV 例程200篇】23. 图像添加中文文字(ImageDraw.Draw)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】23. 图像添加中文文字 OpenCV 不支持显示中文字符,使用 cv2.putText() 时添加的文本字符串不能包含中文字符(包括中文标点符号)。在图像中添加中文字符&#xff0…

【OpenCV 例程200篇】24. 图像的仿射变换(cv2.warpAffine)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】24. 图像的仿射变换 几何变换的可以分为等距变换、相似变换、仿射变换和投影变换。在很多书籍中把等距变换、相似变换都称为仿射变换,常见的仿射变换包括平移、旋转、缩放、翻转、斜切等…

从自我学习到深层网络

从自我学习到深层网络 在前一节中,我们利用自编码器来学习输入至 softmax 或 logistic 回归分类器的特征。这些特征仅利用未标注数据学习获得。在本节中,我们描述如何利用已标注数据进行微调,从而进一步优化这些特征。如果有大量已标注数据&a…

【OpenCV 例程200篇】25. 图像的平移(cv2.warpAffine)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】25. 图像的平移 平移是物体位置在水平和垂直方向的移动。 像素点 (x,y) 沿 x 轴平移 dx、沿 y 轴平移 dy,可以由以下公式描述: [x~y~1]MAT[xy1],MAT[10dx01dy001]\begin{bmat…