当前位置: 首页 > news >正文

wordpress文章权限南安seo

wordpress文章权限,南安seo,重庆市建设委员会信息网官网,做seo网站标题重要吗文章目录 一,简介:二,拉普拉斯金字塔介绍:三,算法实现步骤3.1 构建融合拉普拉斯金字塔3.2 融合后的拉普拉斯金字塔复原: 四,整体代码实现:五,效果: 一&#x…

文章目录

  • 一,简介:
  • 二,拉普拉斯金字塔介绍:
  • 三,算法实现步骤
    • 3.1 构建融合拉普拉斯金字塔
    • 3.2 融合后的拉普拉斯金字塔复原:
  • 四,整体代码实现:
  • 五,效果:


一,简介:

图像融合是一种将两个或多个图像合成为一幅新图像的技术,目的是结合源图像中的有用信息,生成一幅更具信息量和视觉效果的新图像。拉普拉斯金字塔是一种常用于图像融合的方法,它通过多尺度分解图像,并在不同尺度上进行融合,最终重建出融合后的图像。


二,拉普拉斯金字塔介绍:

在拉普拉斯金字塔的构建过程中如下所示:首先通过高斯模糊和逐层减半尺寸的下采样,形成高斯金字塔。然后,通过从当前层高斯图像中减去经过上采样和下采样处理的上一层高斯图像,计算出拉普拉斯金字塔的每一层。在这个过程中,下采样用于降低图像分辨率,上采样用于恢复分辨率。最后,使用掩模对两张图像的拉普拉斯金字塔进行加权平均,生成混合的拉普拉斯金字塔。通过迭代处理高斯金字塔的每一层,直至达到预设的最大迭代次数,完成图像的融合和细节保留。这种多尺度分解技术可以在不同的尺度上处理图像,保留更多的细节信息,并且在图像融合、图像放大等任务中发挥着重要作用。

三,算法实现步骤

3.1 构建融合拉普拉斯金字塔

为了实现图像融合,我们构建了一个六层的拉普拉斯金字塔。每一层都通过从原始图像中减去经过高斯滤波和上下采样处理后的图像来构造。构建完当前层后,我们对其进行下采样,并按照相同的步骤继续构建下一层。通过这种方式,我们能够有效地融合两张图片的特征,从而实现图像融合的目标。制作拉普拉斯金字塔使用opencv内置函数cv2.pyrUp,以及cv2.pyrDown实现
cv2.pyrUp:

● 功能:上采样图像。
● 参数:输入图像。
● 返回值:上采样后的图像。
● 说明:cv2.pyrUp函数通过对输入图像进行双线性插值来扩大图像的尺寸。双线性插值是一种常用的图像插值方法,它通过计算像素周围点的加权平均值来估算新的像素值。这个函数通常与cv2.pyrDown一起使用,以构建高斯金字塔和拉普拉斯金字塔。

cv2.pyrDown:

● 功能:下采样图像。
● 参数:输入图像。
● 返回值:下采样后的图像。
● 说明:cv2.pyrDown函数通过对输入图像进行高斯滤波和下采样来减小图像的尺寸。高斯滤波器用于平滑图像,去除噪声,而下采样则是通过去除图像的偶数行和列来实现的。这个函数也是构建高斯金字塔和拉普拉斯金字塔的关键步骤之一。

实现代码:

for i in range(maxIterations):# 计算拉普拉斯金字塔laplacianA = cv2.subtract(guassianA, cv2.pyrUp(cv2.pyrDown(guassianA)))laplacianB = cv2.subtract(guassianB, cv2.pyrUp(cv2.pyrDown(guassianB)))# 结合两张图片的拉普拉斯金字塔,通过掩模的高斯金字塔取加权平均值combinedLaplacian = guassianMask * laplacianA + (1.0 - guassianMask) * laplacianB# 将组合的拉普拉斯金字塔添加到列表的开始位置combinedLaplacianPyramids.insert(0, combinedLaplacian)# 更新高斯金字塔,进行下一次迭代guassianA = cv2.pyrDown(guassianA)guassianB = cv2.pyrDown(guassianB)guassianMask = cv2.pyrDown(guassianMask)# 添加最后一级的拉普拉斯金字塔(金字塔的顶部)
lastCombined = guassianMask * guassianA + (1.0 - guassianMask) * guassianB
combinedLaplacianPyramids.insert(0, lastCombined)

3.2 融合后的拉普拉斯金字塔复原:

为了将两张图片融合成一张新的图片,我们首先获取了融合后的拉普拉斯金字塔的顶层图像,并将其存储在变量blendedImage中。接着,我们进入一个循环,从第二层开始,遍历融合后的拉普拉斯金字塔中的每一层。在循环中,我们首先将blendedImage上采样到下一层金字塔的尺寸,然后将上采样后的blendedImage与金字塔中的当前层图像相加,以重建金字塔。通过这种方式,我们逐渐重建出融合后的图片,保留了两张图片的细节信息,并最终得到了一张融合后的图像。
代码如下(示例):

blendedImage = combinedLaplacianPyramids[0]
for i in range(1, len(combinedLaplacianPyramids)):blendedImage = cv2.pyrUp(blendedImage)blendedImage = cv2.add(blendedImage, combinedLaplacianPyramids[i])

四,整体代码实现:

# 导入必要的库
import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg# 读取两张图片
A = cv2.imread(r"F:\learnopencv-master\SeamlessCloning\images\man.jpg")  # 读取男性图片
B = cv2.imread(r"F:\learnopencv-master\SeamlessCloning\images\woman.jpg")  # 读取女性图片# 将图片转换为浮点数并归一化
A = np.float32(A) / 255.0
B = np.float32(B) / 255.0# 在图片A中创建一个男性脸部的大致掩模
mask = np.zeros(A.shape, A.dtype)  # 初始化掩模为零矩阵
# 取出男性脸部区域制作蒙版
polygon = np.array([[164,226], [209,225], [238,188], [252,133], [248,75], [240,29], [192,15], [150,15], [100,70], [106,133], [123,194]], np.int32)
cv2.fillPoly(mask, [polygon], (255, 255, 255))  # 填充多边形
mask = np.float32(mask) / 255.0  # 将掩模转换为浮点数并归一化# 通过与小于1.0的浮点数相乘来取得男性和女性脸部的加权平均值
mask = mask * 0.7  # 男性脸部占比0.7,女性脸部占比0.3# 将图片调整为2的幂次方大小,此处为32,调整为384x352
A = cv2.resize(A, (384, 352))# B和掩模需要与A尺寸相同,以便后续的乘法和加法操作
B = cv2.resize(B, (A.shape[1], A.shape[0]))
mask = cv2.resize(mask, (A.shape[1], A.shape[0]))# 从原始图片(金字塔的底部)开始
guassianA = A.copy()
guassianB = B.copy()
guassianMask = mask.copy()# 存储合并的拉普拉斯金字塔
combinedLaplacianPyramids = []# 金字塔的层数,可以尝试不同的值,注意图片尺寸
maxIterations = 5for i in range(maxIterations):# 计算拉普拉斯金字塔laplacianA = cv2.subtract(guassianA, cv2.pyrUp(cv2.pyrDown(guassianA)))laplacianB = cv2.subtract(guassianB, cv2.pyrUp(cv2.pyrDown(guassianB)))# 结合两张图片的拉普拉斯金字塔,通过掩模的高斯金字塔取加权平均值combinedLaplacian = guassianMask * laplacianA + (1.0 - guassianMask) * laplacianB# 将组合的拉普拉斯金字塔添加到列表的开始位置combinedLaplacianPyramids.insert(0, combinedLaplacian)# 更新高斯金字塔,进行下一次迭代guassianA = cv2.pyrDown(guassianA)guassianB = cv2.pyrDown(guassianB)guassianMask = cv2.pyrDown(guassianMask)# 添加最后一级的拉普拉斯金字塔(金字塔的顶部)
lastCombined = guassianMask * guassianA + (1.0 - guassianMask) * guassianB
combinedLaplacianPyramids.insert(0, lastCombined)
# 重建图片
blendedImage = combinedLaplacianPyramids[0]
for i in range(1, len(combinedLaplacianPyramids)):blendedImage = cv2.pyrUp(blendedImage)blendedImage = cv2.add(blendedImage, combinedLaplacianPyramids[i])cv2.imshow('Blended', blendedImage)  # 显示混合后的图片# 直接混合两张图片以进行比较
directCombination = mask * A + (1.0 - mask) * B
cv2.imshow('Direct combination', directCombination)  # 显示直接混合后的图片
cv2.waitKey(0)  # 等待按键后关闭窗口

五,效果:

原图:
请添加图片描述

请添加图片描述
融合后效果(左图为直接融合,右图为拉普拉斯融合):
在这里插入图片描述

http://www.yidumall.com/news/50146.html

相关文章:

  • 记事本网站开发手机百度高级搜索入口
  • 做游戏装备网站可以吗青岛网站建设公司电话
  • 对学院网站建设的建议网站平台有哪些
  • 网站开发需要多少钱价格seo搜索引擎优化兴盛优选
  • 辽宁省建设厅网站升级病毒式营销
  • 深圳网站建设 制作元下载百度
  • 719y你会回来感谢我的seo推广培训
  • b2b免费发布网站大全黄页88seo和sem是什么意思
  • 大气网站背景北京百度推广代理公司
  • 茂名网站建设建站系统山西疫情最新情况
  • 网站开发技术题目百度seo公司哪家好一点
  • html5视频网站开发活动推广软文范例
  • 做自媒体关注的网站官方网站怎么注册
  • wordpress自动获取封面图seo一般包括哪些内容
  • 河东手机站系统优化工具
  • 做直播网站需要什么每天三分钟新闻天下事
  • 怎么做免费的网站链接佛山关键词排名效果
  • 做网站后端需要学什么成都疫情最新情况
  • 免费的在线设计网站广告联盟app下载
  • python制作视频网站开发全网营销推广方案外包
  • 珠海疫情最新消息公布合肥网站优化seo
  • 理财网站建设方案书网站免费高清素材软件
  • 苏州做网站费用制作网站的软件有哪些
  • css做网站发布外链的步骤
  • 苏州小程序开发公司黑帽seo工具
  • 网络舆情监测 toom哈尔滨关键词优化方式
  • 企业网站建设具体步骤淘宝新店怎么快速做起来
  • 衡水提供网站制作公司哪家好网推平台有哪些比较好
  • 做网站不推广有效果吗南宁网站公司
  • 页游和做网站网页制作与网站建设实战教程