opencv4 python文档_python opencv 基础 4: addWeighted() 融合两张图像

在利用opencv进行图像处理的过程中,很多时候需要对两张图像混合,或者为其中一张图像加上一个LOGO等操作。

在opencv中的addWeight函数提供了很好的处理方法:

addWeighted()

dst = cv2.addWeighted(src1, alpha, src2, beta, gamma,dst,dtype)

其中src1和src2是输入图像数组,而alpha,beta是执行加权加法时要考虑的相应权重。gamma是静态权重,将被添加到图像的所有像素中

dst和dtype默认值未None

addWeighted()函数返回包含结果图像像素值的numpy数组, 其原理可以由如下公式描述:

dst = scr1*alpha + scr2*beta + gamma

示例1:使用addWeighted融合两个图像

我们将拍摄两张图像,并将它们的alpha和beta值相加0.5进行混合:

import cv2

# read two images

src1 = cv2.imread('./image1.png', cv2.IMREAD_COLOR)

src2 = cv2.imread('./image2.png', cv2.IMREAD_COLOR)

# add or blend the images

dst = cv2.addWeighted(src1, 0.5, src2, 0.5, 0.0)

# save the output image

cv2.imwrite('./image.png', dst)

原图1和原图2:

opencv4 python文档_python opencv 基础 4: addWeighted() 融合两张图像_第1张图片   

opencv4 python文档_python opencv 基础 4: addWeighted() 融合两张图像_第2张图片

混合后的结果:

opencv4 python文档_python opencv 基础 4: addWeighted() 融合两张图像_第3张图片

示例2:融合两个具有不同权重的图像

我们将使用与先前示例相同的输入图像,但是权重不同。alpha=1,beta=1

import cv2

# read two images

src1 = cv2.imread('./image1.png', cv2.IMREAD_COLOR)

src2 = cv2.imread('./image2.png', cv2.IMREAD_COLOR)

# add or blend the images

dst = cv2.addWeighted(src1, 1, src2, 1, 0.0)

# save the output image

cv2.imwrite('./image.png', dst)

结果如下:

opencv4 python文档_python opencv 基础 4: addWeighted() 融合两张图像_第4张图片

在改变权重后,混合后的效果也发生了明显的变化

扩展问题:

如果是两个图像的分辨率(尺寸)不一致那应该如何处理呢?在此我大概有两个方向:

Resize图像到一致的尺寸进行融合

制定一个ROI,在ROI内进行融合

—–>>>>>

0

相关文章:Python字典dictionary Python中的Dictionary是数据值的无序集合,用于存储数据值(例如映射),与其他仅将单个值作为元素的 […]...

Python中的循环技术 Python通过某些内置函数在各种顺序容器中支持各种循环技术。这些方法在竞争性编程中非常有用,在各种项目中也非 […]...

int上的Python位函数(bit_length,to_bytes和from_bytes) int类型实现number.Integral抽象基类。 1. int.bit_length() 返回表示二进制 […]...

Python中的日历函数 2(monthrange(),prcal(),weekday()…) 日历函数 1中讨论了一些日历函数 1. monthrange(year,month):此函数返回两个整数,第一 […]...

Python | 使用XlsxWriter模块在Excel工作表中绘制面积图 先决条件:在excel文件上创建和写入 XlsxWriter 是一个Python库,使用它可以对excel文件 […]...

Python中生成安全的随机数 secrets模块用于生成管理重要数据的随机数,例如密码,帐户身份验证,安全令牌以及相关密码,这些密码具有较强 […]...

Pandas处理丢失数据 如果没有为一个或多个项目或整个单元提供信息,则可能会发生数据丢失。在现实生活中,数据丢失是一个非常大的问题。缺 […]...

在Python中使用NLTK删除停用词 将数据转换为计算机可以理解的内容的过程称为预处理。预处理的主要形式之一是过滤掉无用的数据。在自然语言处理中,无 […]...

你可能感兴趣的:(opencv4,python文档)