[转载] opencv学习笔记7:图像加法与图像融合
参考链接: python opencv 基础 4: addWeighted() 融合两张图像
图像加法
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:图像加法与图像融合相关推荐
- OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc
OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...
- OpenCV学习笔记(十七):图像修补:inpaint()
OpenCV学习笔记(十七):图像修补:inpaint() inpaint()函数 使用区域邻域在图像中还原选定区域. void inpaint( InputArray src, // 表示要修复的图 ...
- OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()
OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize() 一.图像金字塔定义: 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是 ...
- OpenCV学习笔记(三):图像对比度、亮度调整源码
OpenCV学习笔记(三):图像对比度.亮度调整源码 主函数: #include <opencv2/opencv.hpp>using namespace cv;using namespac ...
- Opencv学习笔记(二) 提取图像中的水平线和垂直线
提取图像中的水平线和垂直线属于基础的形态学操作的应用,原理:根据要提取图形来定义一个特定的结构元素,然后以这个结构相素去遍历图像,进行一系列形态学操作,以此过滤掉其他特征的图形,达到提取的效果. 示例 ...
- opencv学习笔记(三)—— 利用图像金字塔进行图像无缝拼接,cv2.pyrDown() ,cv2.pyrUp()
原理 一般情况下,我们要处理是一副具有固定分辨率的图像.但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行处理.比如,我们要在一幅图像中查找某个目标,比如脸,我们不知道目标在图像中的尺寸大小. ...
- 【OpenCV 学习笔记】第十一章: 图像金字塔
第十一章: 图像金字塔 一.什么是图像金字塔¶ 同一张图片不同分辨率的子图的集合. 图像金字塔底部是待处理的高分辨率图像,也就是原始图像,顶部是低分辨率的近似图像.一般情况下,都是每向上移动一级,图像 ...
- opencv学习笔记(八)-- 在图像上绘制形状和文字
文章目录 CV::Point以及CV::Scalar 画直线cv::line() 画椭圆cv::elipse() 画矩形cv::rectangle() 画圆cv::circle() 画填充多边形cv: ...
- 【OpenCV学习笔记】之六 手写图像旋转函数---万丈高楼平地起
话说,平凡之处显真格,这一点也没错! 比如,对旋转图像进行双线性插值,很简单吧? 可,对我,折腾了大半天,也没有达到预期效果! 尤其是三个误区让我抓瞎好久: 1,坐标旋转公式. 这东西,要用 ...
最新文章
- Hyperledger Fabric Rest API服务开发教程【含源码】
- socket.io 中文手册 socket.io 中文文档
- Java类集-SortedSet接口
- 【MySQL】基于MySQL的SQL增删改查实战演练
- jni android rect.h,解决 fatal error: jni_md.h: No such file or directory #include “jni_md.h”
- linux命令 bind,Linux bind命令
- 20170627——【肿瘤】肿瘤的异质性
- 怎么设置日历隔一天提醒
- html简繁替换,Web界面简繁体转换
- Java:File和IO流
- Cannot access ‘state‘ before initialization
- 单片机 中断秒表 c语言程序,51单片机秒表C程序
- 微信小程序开发部署上线流程
- 计算机视觉方向就业怎么样?可以做什么?
- 金庸感人的经典爱情对白
- 如何学习一门编程语言,从入门到不放弃!
- 帆软报表列表_帆软入门与报表设计
- A股上市公司现场检查随机抽查数据
- 畅谈ASP.NET 查看聊天记录
- 客户关系管理系统CRM小程序源码
热门文章
- 隐藏版本信息号返回服务器名,配置服务器版本信息隐藏
- java pdf 转txt文件怎么打开_使用iText将TXT文件转换为PDF(保留格式)
- JAVA容器_java集合容器之Stack
- spark需要maven管理吗_使用Eclipse编写Spark应用程序(Scala+Maven)
- python处理时间的标准函数库_使用Python的datetime库处理时间(RPA流程)
- 仿京东显示隐藏密码明文案例(字体图标实现)
- 500万数据mysql_mysql 500万数据库
- windows中python虚拟环境_Windows下Python虚拟环境的配置
- Unity3D基础12:碰撞体
- 吴恩达神经网络和深度学习-学习笔记-17-batch归一化(Batch Normalization)(BN)