图像加法

1.使用Numpy加法

运算方式:结果=图像1+图像2

原理:图像数据格式为unit8
8位二进制表示范围是0到255。
二进制相加
1.不超过255的,如100+58=158
2.两数相加可能超过255,超过255的取模运算
如255+58=(255+58)%255=58
2.使用opencv加法

方法:结果=cv2.add(图像1,图像2)
饱和运算:
1.如果 两数相加小于255,100+58=158
2.两数相加可能超过255,值取255.255+58=255

算法比较

注意参与运算的两个图比较大小 格式一样。程序无法对不同尺寸和格式(如PNG,JPG)进行运算。

import cv2
import numpy as np
a=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变
b = a
result1 = a + b
result2 = cv2.add(a, b)
cv2.imshow("original", a)
cv2.imshow("result1", result1)
cv2.imshow("result2", result2)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像融合

将2张或者2张以上的图像信息融合到一张图片上。
不同于图像相加,它需进过一系列算法处理。
如将两张相同但各有不同缺陷的图,融合成一张完美图,结合各自优点。

图像加法:
结果图像=图像1+图像2
图像融合:
结果图像=图像1x系数1+图像2x系数2+亮度调节量

方法:函数addWeighted
cv2.addWeighted(图像1,系数1,图像2,系数2,亮度调节量)

算例
算例中系数为1,1.实际中,我们一般设为不等

import cv2
b=cv2.imread('lena.bmp')#cv2.IMREAD_UNCHANGED 未改变
a=cv2.imread("boat.bmp")
result=cv2.addWeighted(a,1,b,1,0)
cv2.imshow("boat",a)
cv2.imshow("lena",b)
cv2.imshow("result",result)
cv2.waitKey()
cv2.destroyAllWindows()

总目录链接:
python3+opencv学习笔记汇总目录(适合基础入门学习)
电气专业的计算机小白,写博文不容易,如果你觉得本文对你有用,请点个赞 支持下。

opencv学习笔记7:图像加法与图像融合相关推荐

  1. OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc

    OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...

  2. OpenCV学习笔记(十七):图像修补:inpaint()

    OpenCV学习笔记(十七):图像修补:inpaint() inpaint()函数 使用区域邻域在图像中还原选定区域. void inpaint( InputArray src, // 表示要修复的图 ...

  3. OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()

    OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize() 一.图像金字塔定义: 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是 ...

  4. OpenCV学习笔记(三):图像对比度、亮度调整源码

    OpenCV学习笔记(三):图像对比度.亮度调整源码 主函数: #include <opencv2/opencv.hpp>using namespace cv;using namespac ...

  5. Opencv学习笔记(二) 提取图像中的水平线和垂直线

    提取图像中的水平线和垂直线属于基础的形态学操作的应用,原理:根据要提取图形来定义一个特定的结构元素,然后以这个结构相素去遍历图像,进行一系列形态学操作,以此过滤掉其他特征的图形,达到提取的效果. 示例 ...

  6. opencv学习笔记(三)—— 利用图像金字塔进行图像无缝拼接,cv2.pyrDown() ,cv2.pyrUp()

    原理 一般情况下,我们要处理是一副具有固定分辨率的图像.但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行处理.比如,我们要在一幅图像中查找某个目标,比如脸,我们不知道目标在图像中的尺寸大小. ...

  7. 【OpenCV 学习笔记】第十一章: 图像金字塔

    第十一章: 图像金字塔 一.什么是图像金字塔¶ 同一张图片不同分辨率的子图的集合. 图像金字塔底部是待处理的高分辨率图像,也就是原始图像,顶部是低分辨率的近似图像.一般情况下,都是每向上移动一级,图像 ...

  8. opencv学习笔记(八)-- 在图像上绘制形状和文字

    文章目录 CV::Point以及CV::Scalar 画直线cv::line() 画椭圆cv::elipse() 画矩形cv::rectangle() 画圆cv::circle() 画填充多边形cv: ...

  9. 【OpenCV学习笔记】之六 手写图像旋转函数---万丈高楼平地起

    话说,平凡之处显真格,这一点也没错!  比如,对旋转图像进行双线性插值,很简单吧?  可,对我,折腾了大半天,也没有达到预期效果!  尤其是三个误区让我抓瞎好久: 1,坐标旋转公式.   这东西,要用 ...

  10. OpenCV学习笔记03:缩放裁剪图像与调整图像色调

    文章目录 一.缩放裁剪图像 (一)resize函数 (二)缩放图像 1.编写程序,实现功能 2.运行程序,查看结果 (三)裁剪图像 1.编写程序,实现功能 2.运行程序,查看结果 二.调整图像色调 ( ...

最新文章

  1. [Android] DiffUtil在RecyclerView中的使用详解
  2. ANSYS配合时如何选择重合面(打开爆炸视图)
  3. 3.STM32中对EXTI_PE5_Config()函数的理解(自定义)之中断控制按键LED
  4. 内蒙古电力交易对数据中心用电费用的影响分析
  5. PaperNotes(19)-Learning Lane Graph Representations for Motion Forecasting
  6. 关于J2EE项目中三层架构如何在开发中得到正确的实施
  7. html如何设置轮动,手把手教你构建轮动策略
  8. dict 转换成json_Python XML转换为JSON,XML转换为Dict
  9. [译] Node.js 流: 你需要知道的一切
  10. 在Windos上安装Nginx
  11. COMSOL模拟气流可视化
  12. ybc_xxx类模块应用1-ybc_speech(第一片)
  13. __virtual__ returned False: cannot import name certs ---saltstack异常解决
  14. 入门了解学hybris和sap的需要内容(自己整理)
  15. python学习——酷炫时钟
  16. oracle home 命令,oracle基本命令集锦
  17. Java学习苦旅(九)——原来顺序表可以这么简单呀
  18. 企业微信审批页面HTML,企业微信审批模板调用示例及注意事项
  19. 香帅的北大金融学课笔记1 -- 金融世界观
  20. 美团前端必会面试题(附答案)

热门文章

  1. 牛客题霸 NC20 数字字符串转化成IP地址
  2. coloros基于java_基于Android 11 ColorOS 11海外版亮点一图抢先看:9月24日国内发布
  3. linux变量中代,linux中shell变量$#,$@,$0,$1,$2和变量${0%/*}
  4. 关于Java中String类的intern()方法
  5. SSM之二(Spring整合Mybatis)
  6. Spring-学习笔记10【Spring事务控制】
  7. GIS创新实践【课堂笔记】
  8. Matlab图像处理创新实践-实验4【综合设计大实验——GUI综合设计】
  9. AndroidStudio导入新项目一直卡在Building gradle project
  10. Java IO流学习总结七:Commons IO 2.5-FileUtils