图像加法 cv.add

您可以通过OpenCV函数 cv.add() 或仅通过numpy操作 res = img1 + img2 添加两个图像。两个 图像应具有相同的深度和类型,或者第二个图像可以只是一个标量值。

注意: OpenCV加法和Numpy加法之间有区别。OpenCV加法是饱和运算,而Numpy加法是模运算。见下代码

例如,考虑以下示例:

>>> x = np.uint8([250])
>>> y = np.uint8([10])
>>> print( cv.add(x,y)
[[255]]>>> print( x+y ) # 250+10 = 260 % 256 = 4
[4]

当添加两个图像时,它将更加可见。OpenCV功能将提供更好的结果。因此,始终最好坚持使用 OpenCV功能。

图像融合 cv.addWeighted

这也是图像加法,但是对图像赋予不同的权重,以使其具有融合或透明的感觉。根据以下等式添
加图像:

G ( x ) = ( 1 − α ) f 0 ( x ) + α f 1 ( x ) G(x)= (1 - \alpha)f_0(x)+ \alpha f_1(x) G(x)=(1−α)f0​(x)+αf1​(x)

通过从 α \alpha α 从 0 → 1 0\rightarrow1 0→1 更改,您可以在一个图像到另一个图像之间执行很酷的过渡。
在这里,我拍摄了两个图像,将它们融合在一起。第一幅图像的权重为0.7,第二幅图像的权重为 0.3。

cv.addWeighted() 在图像上应用以下公式。
d s t = α ⋅ i m g 1 + β ⋅ i m g 2 + γ dst=\alpha \cdot img1+\beta \cdot img2 + \gamma dst=α⋅img1+β⋅img2+γ
在这里, γ \gamma γ 被视为零。

img1 = cv.imread('ml.png')
img2 = cv.imread('opencv-logo.png')
dst = cv.addWeighted(img1,0.7,img2,0.3,0) cv.imshow('dst',dst)
cv.waitKey(0)
cv.destroyAllWindows()

cv.add cv.addWeighted 的区别相关推荐

  1. python cv release_Python cv.GetSize方法代码示例

    # 需要导入模块: import cv [as 别名] # 或者: from cv import GetSize [as 别名] def FPV_thread(): global camera_ind ...

  2. JAVAAPI学习之Calendar类;Calendar类set()、add()、roll()方法区别

    JAVAAPI学习之Calendar类 http://blog.csdn.net/myjlvzlp/article/details/8065775(写的很好,清晰易懂) Calendar类set(). ...

  3. Docker学习总结(58)——Dockerfile中,ADD和COPY的区别?

    Dockerfile中的COPY指令和ADD指令都可以将主机上的资源复制或加入到容器镜像中,都是在构建镜像的过程中完成的.COPY指令和ADD指令的唯一区别在于是否支持从远程URL获取资源.COPY指 ...

  4. cv::createTrackbar cv::threshold

    2019独角兽企业重金招聘Python工程师标准>>> #include <iostream> #include <glog/logging.h> #incl ...

  5. 单片机基础之ADD与ADDC的区别详解

    单片机基础之ADD与ADDC的区别详解 ADD 两数相加,不加进位位. ADDC 两数相加,加进位位.进位当时为1就加1,进位为0就加0. 一般在多字节数相加时,低字节相加用ADD ,高字节相加就用A ...

  6. c语言 subl 指令,linux 之 汇编语言 的mov和movl sub 和subl add 和addl 的区别??

    AT&T汇编语言(Assembly Language)是UNIX下惯用的汇编语言(Assembly Language)各式 l,w,b是ATT汇编语言(Assembly Language)中用 ...

  7. cv::Mat 与 CvMat的区别

    cv::Mat和CvMat都可以表示图像数据,只是却不明白他们之间到底什么区别,用CV::MAT 每次都有56byte的内存泄露.后来查看了源码才知道原来cv::Mat是一个类(Class),而CvM ...

  8. 交叉验证中cv=? 与 cv=KFold(n_splits=?)的区别

    这几天复习交叉验证的时候发现一个问题,学习资料中有些地方用的函数中cv=?,有些地方则用的cv=KFold(n_splits=?) 这个函数,就比如我用KNN模型做十折交叉验证: model = sk ...

  9. 什么是CV?CV和resume有什么区别?

    CV的全称是Curriculum Vitae(履历).一般而言,CV仅仅是在申请大学或者研究所里教职.研究职位时才要求的.是对应聘者过去的学术经历和成就按照时间顺序的详细阐述.因此和resume(简历 ...

最新文章

  1. 干货 | 一文搞懂极大似然估计
  2. 【网络流】解题报告: luogu P2045 方格取数加强版(k取方格数)(最大费用最大流)
  3. WCF 入门之旅(4): 怎样用客户端调用WCF服务
  4. java1.7环境,jdk1.7编译环境
  5. 【转】采购提前期概述
  6. 中石油训练赛 - Equidistant(bfs)
  7. Oracle电子商务套件版本12.1.3自述文件 (Doc ID 1534411.1)
  8. java将url页面生成pdf_如何将PDF页面从横向改成纵向?
  9. PHPstrom的Disable Power Save Mode
  10. 洛谷—— P2251 质量检测
  11. Python科学计算系列2—不等式和不等式组
  12. excel表用office2007一保存就闪退
  13. 台式电脑怎么组装步骤_详细教您台式电脑如何快速组装
  14. ARTS打卡10-抓住海森堡Bug
  15. 编一程序,将两个字符串连接起来,不要用strcat函数。C语言
  16. 为什么要研究《双目结构光》?
  17. 华为ebgp_华为设备BGP详细配置
  18. 新手小白如何开始网络赚钱?最靠谱的实操方法来了!
  19. IDEA开发 工具IC和IU的区别
  20. python词云图代码示例 无jieba_Python爬虫入门-jieba库制作词云图

热门文章

  1. Java开源的11个中文分词器使用方法和分词效果对比
  2. 广告投放分析(Python,Sql)
  3. Python包装网页微信API并实现简单自动回复
  4. html select不允许选择,设置select下拉框不能选择
  5. HTTP协议中 POST和GET的区别
  6. 华为手机隐藏的5个技巧,每一个值得收藏
  7. 电脑接两个屏幕,其中一个偶尔闪灭
  8. 计算机网络之域名解析
  9. 机器学习 基础理论 学习笔记 (6)异常值检测和处理
  10. Intellij IDEA 的激活方法