公司做网站那个网站好,重庆seo关键词优化服务,高德是外国公司吗?,网站ip需要备案OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】190.基于图像分割的图像融合 两张图像直接进行加法运算后图像的颜色会改变#xff0c;通过加权加法实现图像混合后图像的透明度会改变#xff0c;都不能实现图像的叠加。
实现图像的叠加#xff0c;需要…OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】190.基于图像分割的图像融合 两张图像直接进行加法运算后图像的颜色会改变通过加权加法实现图像混合后图像的透明度会改变都不能实现图像的叠加。
实现图像的叠加需要综合运用图像分割、图像掩模、位操作和图像加法的操作。
确定图像叠加位置将 Lena 图像中的叠加位置裁剪出来使叠加图像的尺寸相同对前景图像进行二值化处理生成黑白掩模图像 maskLOGO区域黑色遮盖及其反转掩模图像 maskInv LOGO区域白色开窗以黑白掩模 maskLOGO区域黑色遮盖作为掩模对背景图像Lena裁剪图进行位操作LOGO区域遮盖为黑色其它区域保持不变得到叠加背景图像 img1BG以反转掩模 maskInvLOGO区域白色开窗作为掩模对前景图像CVlogo进行位操作LOGO区域保持不变其它区域遮盖为黑色得到叠加前景图像 img2FG背景图像 img1BG 和 前景图像 img2FG 通过 cv2.add 加法运算得到裁剪部分的叠加图像用叠加图像替换Lena 图像中的叠加位置得到Lena 叠加 CVlogo 的图像。
算法原理 例程1.90 基于图像分割的图像融合
通过图像分割获得前景目标的掩模图像 mask将前景图像叠加到背景图像的指定位置直接进行图像拼接。 # 1.90基于图像分割的图像融合img1 cv2.imread(../images/seaside02.png) # 背景图像img2 cv2.imread(../images/seagull01.png) # 添加的前景图像xmin, ymin, w, h 160, 64, 256, 256 # 矩形 ROI 位置: (ymin:yminh, xmin:xminw)print(img1.shape, img2.shape)levels 3# HSV 色彩空间图像分割hsv cv2.cvtColor(img2, cv2.COLOR_BGR2HSV) # 将图片转换到 HSV 色彩空间lowerColor np.array([100, 43, 46]) # 蓝色阈值下限: 100/43/46upperColor np.array([124, 255, 255]) # 蓝色阈值上限: 蓝色124/255/255binary cv2.inRange(hsv, lowerColor, upperColor) # 背景色彩图像分割kernel cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5)) # (5, 5) 结构元dilate cv2.dilate(cv2.bitwise_not(binary), kernelkernel, iterations2) # 图像膨胀segment cv2.bitwise_and(img2, img2, maskdilate) # 前景分割图像前景以外区域黑色# 调整尺寸将背景图片调整到 power(2,levels) 的整数倍imgBack cv2.resize(img1, (512, 512), interpolationcv2.INTER_CUBIC)front cv2.resize(segment, (w, h)) # 将前景图像调整到指定大小 (w,h)imgFront np.zeros(imgBack.shape, dtypenp.uint8) # 与 imgback 尺寸相同的黑色图像imgFront[ymin:yminh, xmin:xminw] frontgrayFront cv2.cvtColor(imgFront, cv2.COLOR_BGR2GRAY)_, mask0 cv2.threshold(grayFront, 1, 255, cv2.THRESH_BINARY_INV) # 二值化处理bg cv2.bitwise_and(imgBack, imgBack, maskmask0) # 生成背景mask 遮罩区域黑色fg imgFront # 生成前景前景以外区域黑色stack cv2.add(bg, fg) # 直接合成前景与背景plt.figure(figsize(9, 6))plt.subplot(231), plt.axis(off), plt.title(Original back)plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB))plt.subplot(232), plt.axis(off), plt.title(Original front)plt.imshow(cv2.cvtColor(img2, cv2.COLOR_BGR2RGB))plt.subplot(233), plt.axis(off), plt.title(Segmentation )plt.imshow(cv2.cvtColor(segment, cv2.COLOR_BGR2RGB))plt.subplot(234), plt.axis(off), plt.title(Resized mask)plt.imshow(mask0, gray)plt.subplot(235), plt.axis(off), plt.title(Resized front)plt.imshow(cv2.cvtColor(imgFront, cv2.COLOR_BGR2RGB))plt.subplot(236), plt.axis(off), plt.title(Stacked)plt.imshow(cv2.cvtColor(stack, cv2.COLOR_BGR2RGB))plt.tight_layout()plt.show()本节完 版权声明
OpenCV 例程200篇 总目录-202205更新 youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/124945141)
Copyright 2022 youcans, XUPT Crated2022-5-20 欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列持续更新中 【youcans 的 OpenCV 例程200篇】185.图像金字塔之高斯金字塔 【youcans 的 OpenCV 例程200篇】186.图像金字塔之拉普拉斯金字塔 【youcans 的 OpenCV 例程200篇】187.由拉普拉斯金字塔还原图像 【youcans 的 OpenCV 例程200篇】188.基于拉普拉斯金字塔的图像融合 【youcans 的 OpenCV 例程200篇】189.基于掩模的拉普拉斯金字塔图像融合 【youcans 的 OpenCV 例程200篇】190.基于图像分割的图像融合 【youcans 的 OpenCV 例程200篇】191.基于图像分割的金字塔图像融合 【youcans 的 OpenCV 例程200篇】192.Gabor 滤波器组的形状 【youcans 的 OpenCV 例程200篇】193.基于Gabor 滤波器的特征提取 更多内容请见 【OpenCV 例程200篇 总目录-202206更新】