opencv 图像加法与图像融合的实现代码
时间:2022-07-27
本文章向大家介绍opencv 图像加法与图像融合的实现代码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
图像加法
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()
到此这篇关于opencv 图像加法与图像融合的实现代码的文章就介绍到这了,更多相关opencv 图像加法与图像融合内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!
- Linux 应用程序开发入门
- LINQ to XML LINQ学习第一篇
- PHP 安全与性能
- Extjs 项目中常用的小技巧,也许你用得着(5)--设置 Ext.data.Store 传参的请求方式
- WPF备忘录(5)怎样修改模板中的控件
- Linux 系统与数据库安全
- 使用委托实现同步回调与异步回调
- Application Firewall Design
- Extjs 项目中常用的小技巧,也许你用得着(4)---Extjs 中的cookie设置
- C#基础知识回顾--串行化与反串行化
- Shell实用实例参考
- 数据库记录安全解决方案
- 多客服功能终于也向所有微信认证的订阅号开放了
- WPF备忘录(4)打个勾画个叉娱乐下
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何无痛的为你的前端项目引入多线程
- 阔别两年,webpack 5 正式发布了!
- NumPy 数据归一化、可视化
- 迭代器怎么就节省内存了?
- Go 多版本管理
- 空谈分布式系统设计之幂等性
- 空谈发件箱模式(outbox pattern)
- 《一起学sentinel》六、Slot的子类及实现之FlowSlot和DegradeSlot
- Hive UDF/UDAF 总结
- 3分钟短文:用Laravel发一封“漂洋过海”的电子邮件
- leetcode之单词替换
- KMP算法分析
- Spring Boot 系列:最新版优雅停机详解
- 前端学数据结构与算法(八): 单词前缀匹配神器-Trie树的实现及其应用
- 突击并发编程JUC系列-Locksupport 与 Condition