企业网站设计哪个好,成都公关公司排名,网站建设确认书,信息流广告是什么文章目录 简介函数原型代码示例参考资料 简介
有的时候我们需要将两张图片在alpha通道进行混合#xff0c;比如深度学习数据集增强方式MixUp。OpenCV的addWeighted提供了相关操作#xff0c;此篇博客将详细介绍这个函数#xff0c;并给出代码示例。#x1f680;#x1f6… 文章目录 简介函数原型代码示例参考资料 简介
有的时候我们需要将两张图片在alpha通道进行混合比如深度学习数据集增强方式MixUp。OpenCV的addWeighted提供了相关操作此篇博客将详细介绍这个函数并给出代码示例。
函数原型 o u t p u t I m g s a t u r a t e ( α ∗ i n p u t I m g 1 β ∗ i n p u t I m g 2 γ ) \rm outputImgsaturate( \alpha*inputImg1 \beta*inputImg2 \gamma) outputImgsaturate(α∗inputImg1β∗inputImg2γ)
cv.addWeighted( src1, alpha, src2, beta, gamma[, dst[, dtype]] ) - dst参数说明src1图片1alpha图片1的权重src2图片2beta图片2的权重gamma添加到每个总和的标量。一般为0dst输出图片Python版本不需要指定dtype输出数组的可选深度默认即可
代码示例 import cv2
import matplotlib.pyplot as plt# 加载两张图片
img1 cv2.imread(filenameLenna.png)
img2 cv2.imread(filenamehorses.jpg)# 将两张图片都调整到640*640
shape1 img1.shape # HWC
shape2 img2.shape # HWC
max1 max(shape1[0], shape1[1])
max2 max(shape2[0], shape2[1])
img1 cv2.copyMakeBorder(srcimg1,topint((max1 - shape1[0])/2),bottomint((max1 - shape1[0])/2),leftint((max1 - shape1[1])/2),rightint((max1 - shape1[1])/2),borderTypecv2.BORDER_REFLECT101,
)
img1 cv2.resize(srcimg1, dsize(640, 640), interpolationcv2.INTER_LINEAR)
img2 cv2.copyMakeBorder(srcimg2,topint((max2 - shape2[0])/2),bottomint((max2 - shape2[0])/2),leftint((max2 - shape2[1])/2),rightint((max2 - shape2[1])/2),borderTypecv2.BORDER_REFLECT101,
)
img2 cv2.resize(srcimg2, dsize(640, 640), interpolationcv2.INTER_LINEAR)# 按照比例将两张图片进行混合
alpha 0.5
beta 1.0 - alpha
img_blending cv2.addWeighted(src1img1, alphaalpha, src2img2, betabeta, gamma.0)# 绘制图片
fig plt.figure(figsize(9, 3))
fig.suptitle(tBlend two images)ax1 fig.add_subplot(1, 3, 1)
ax2 fig.add_subplot(1, 3, 2)
ax3 fig.add_subplot(1, 3, 3)ax1.set_title(labelimage1)
ax1.spines[top].set_visible(bFalse)
ax1.spines[bottom].set_visible(bFalse)
ax1.spines[left].set_visible(bFalse)
ax1.spines[right].set_visible(bFalse)
ax1.axes.xaxis.set_visible(bFalse)
ax1.axes.yaxis.set_visible(bFalse)
ax1.imshow(Xcv2.cvtColor(srcimg1, codecv2.COLOR_BGR2RGB))ax2.set_title(labelimage2)
ax2.spines[top].set_visible(bFalse)
ax2.spines[bottom].set_visible(bFalse)
ax2.spines[left].set_visible(bFalse)
ax2.spines[right].set_visible(bFalse)
ax2.axes.xaxis.set_visible(bFalse)
ax2.axes.yaxis.set_visible(bFalse)
ax2.imshow(Xcv2.cvtColor(srcimg2, codecv2.COLOR_BGR2RGB))ax3.set_title(labelblending image)
ax3.spines[top].set_visible(bFalse)
ax3.spines[bottom].set_visible(bFalse)
ax3.spines[left].set_visible(bFalse)
ax3.spines[right].set_visible(bFalse)
ax3.axes.xaxis.set_visible(bFalse)
ax3.axes.yaxis.set_visible(bFalse)
ax3.imshow(Xcv2.cvtColor(srcimg_blending, codecv2.COLOR_BGR2RGB))plt.show()
参考资料
Computer Vision: Algorithms and ApplicationsOpenCV文档Adding (blending) two images using OpenCVOpenCV文档addWeighted() 收集整理和创作不易, 若有帮助, 请帮忙点赞➕收藏❤️, 谢谢!✨✨