Opencv+Python学习记录7:图像加权和(内附详细代码)
一,介绍
所谓图像加权和,就是在计算两幅图像的像素值之和时,将每幅图像的权重考虑进来,可以用公式表示为:
dst=saturate(src1×α+src2×β+γ)
式中,saturate()表示取饱和值(最大值)。图像进行加权和计算时,要求src1和src2必须大小、类型相同,但是对具体是什么类型和通道没有特殊限制。它们可以是任意数据类型,也可以有任意数量的通道(灰度图像或者彩色图像),只要二者相同即可。
OpenCV中提供了函数cv2.addWeighted(),用来实现图像的加权和(混合、融合),该函数的语法格式为:
dst=cv2.addWeighted(src1,alpha,src2,beta,gamma)
其中,参数alpha和beta是src1和src2所对应的系数,它们的和可以等于1,也可以不等于1。该函数实现的功能是dst=src1×alpha+src2×beta+gamma。需要注意,式中参数gamma的值可以是0,但是该参数是必选参数,不能省略。可以将上式理解为“结果图像=图像1×系数1+图像2×系数2+亮度调节量”。
二,示例
下面,我们来看几个例子:
1. 使用数组演示函数cv2.addWeighted()的使用
import cv2 import numpy as np img1=np.ones((3,4),dtype=np.uint8)*100 img2=np.ones((3,4),dtype=np.uint8)*10 gamma=3 img3=cv2.addWeighted(img1,0.6,img2,5,gamma) print(img3)
运行结果如下:
2.使用函数cv2.addWeighted()对两幅图像进行加权混合,观察处理结果
import cv2 a=cv2.imread("gray1.jpg") b=cv2.imread("gray3.jpg") result=cv2.addWeighted(a,0.6,b,0.4,0) cv2.imshow("gray1",a) cv2.imshow("gray3",b) cv2.imshow("result",result) cv2.waitKey() cv2.destroyAllWindows()
运行结果如下:
3.使用函数cv2.addWeighted()将一幅图像的ROI混合在另外一幅图像内
import cv2 gray1=cv2.imread("gray1.jpg",cv2.IMREAD_UNCHANGED) gray3=cv2.imread("gray3.jpg",cv2.IMREAD_UNCHANGED) cv2.imshow("gray1",gray1) cv2.imshow("gray3",gray3) face1=gray1[200:350,150:250] face3=gray3[0:150,180:280] add=cv2.addWeighted(face1,0.6,face3,0.4,0) gray3[0:150,180:280]=add cv2.imshow("result",gray3) cv2.waitKey() cv2.destroyAllWindows()
运行结果如下:
三,用例图片
gray1
gray3
Opencv+Python学习记录7:图像加权和(内附详细代码)相关推荐
- Python实现逻辑回归实战(完整版)--内附详细代码
Hello大家!上一篇小A已经详细的为大家讲解了逻辑回归的原理和数学推导,但是对于学习人工智能来说仅仅学会原理是远远不够的,还必须要动手实践,必须要学会使用编程语言将算法实现.所以,今天我就来为大家展 ...
- Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)
一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...
- Opencv+Python学习记录6:图像加法运算(内附详细代码)
1.加号运算符 使用加号运算符"+"对图像a(像素值为a)和图像b(像素值为b)进行求和运算,遵循以下规则: 式中,mod()是取模运算,"mod(a+b,256)&qu ...
- 【五】 C语言基础知识学习回顾 | 一篇搞定C语言基础 | 内附详细代码以及注释
一 .C语言学习第一天 1.1 编写C语言代码:hello.c #include<stdio.h> #include<stdlib.h> //调用system系统函数需要包含的 ...
- hfss和python_利用Python与HFSS联合仿真设计一个微带天线(附详细代码)
原标题:利用Python与HFSS联合仿真设计一个微带天线(附详细代码) 我们知道HFSS是一款电磁仿真商用软件,用其进行天线的设计十分方便.而该软件也预留了可以运行脚本的接口,使用者可以使用脚本对软 ...
- Python学习记录(一)PIL库对于图像操作方法的简单整理
Python学习记录(一)PIL库对于图像操作方法的简单整理 首先对PIL库进行一个简单的介绍:Python图像库PIL(Python Image Library)是python的第三方图像处理库,由 ...
- OpenCV python(二)图像预处理:改变图像大小 提取感兴趣区域
OpenCV python(二)图像预处理:改变图像大小 && 提取感兴趣区域 一.改变图像大小 1.获取图像宽.高.通道数 2.resize函数 3.案例 二.ROI感兴趣区域 1. ...
- Python学习记录day3
2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...
- 【Python学习记录】Numpy广播机制(broadcast)
✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...
最新文章
- jQuery 1.10.0 和 2.0.1 发布
- ITK:平移一个网格
- Oracle 表的连接方式(1)-----Nested loop join和 Sort merge join
- spring框架入门day02
- 换加密算法--python
- 大数据之路之交通大数据应用总体架构设计
- c语言-基本计算 pm2.5,pm2.5标准
- 程序开发里面的profile 是什么意思? (用户配置文件)
- Prefix Sum —— 树状数组+懵逼的组合恒等式
- EKL软件历史版本下载地址集合
- HTML+JS+websocket 实现联机“游戏王”对战(十三)- 实机演示视频
- openssh-7.5p1升级
- 华为服务器bmc怎么传文件,华为服务器bmc配置
- 服务器共享文件搜索慢的原因,客户端访问服务器共享文件反应很慢.doc
- 二进制拆弹实验详解linux,拆解二进制炸弹
- html课堂笔记,Day1-课堂笔记-HTML
- 三相全桥整流 逆变 matlab,三相桥式有源逆变电路的MATLAB建模仿真
- 信安Note_day14
- ESP32 ESP-IDF SD(TF)卡保存GPS北斗模块数据
- PS的快速入门与使用教程
热门文章
- 商城拍卖活动设计方案 瞬时并发高可用
- Android:从简历到offer直通车,跳槽大厂必备宝典,android开发环境搭建
- 如何从下载 UCSC 的 blat 等工具
- 计算机行业未来的规划模板,大学生计算机职业生涯规划书模板
- 爱普生Epson Stylus C84 打印机驱动
- 夸克链 CEO 周期访谈 | ArcBlock 播客
- 云原生系列 【基于CCE Kubernetes编排实战二】
- Redis 链接时好时坏[ error ] [2]Redis::pconnect(): connect() failed: Connection timed out
- Android 自定义RatingBar设置步长没起作用
- 无法web服务器上启动调试 未能启动asp.net,.net - 无法在Web服务器上启动调试。 无法启动ASP.NET调试VS 2010,II7,Win 7 x64...