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

图像泊松融合(convpyr_small版本)

一、背景介绍

        前面已经讲过泊松融合算法和它的fft快速版本实现了,想看下还有没有更快的版本,继续翻了下论文,找到了更快速的版本:Convolution Pyramids 。

        找到它的matlab代码跑了下,效果还不错。学习记录,并用c++复现了下它梯度重建部分相关代码。

二、实现流程

1、基本原理

        基本思路为:输入一张散度图像,在多尺度上用训练好的滤波器做卷积,恢复图像亮度信息到泊松重建的效果样子,因此整个流程分为训练和测试两个阶段。

        训练阶段:使用散度图作为输入,使用该散度图正常泊松重建后结果作为gt训练,得到需要的滤波器核。

        测试阶段:使用散度图和训练好的滤波器核,生成逼近泊松重建效果的结果图像。

2、测试部分

        (1). 输入:

                a、 训练的滤波器核。kernel=(-0.1820, -0.5007, -0.6373, 0.1767, 0.5589)

                b、待重建图像散度div。

 

        (2). 滤波器核拆解

 

        (3). 重建流程

                a、对div图像,使用h1进行滤波。

                b、滤波后图像下采样(采样方式需要和训练使用采样方式完全一样),并保存残差。

                c、迭代a,b步骤,得到残差金字塔。

                d、金字塔最底层,使用g进行滤波, 并上采样。

                e、倒数第二层残差使用h2进行滤波。

                f、d 和e步骤结果叠加。

                g、循环d,e,f步骤,金字塔重建得到结果图像。

3、训练部分

        (1)、输入:1、一张输入图像。

        (2)、设置训练kerenl参数为随机数。

        (3) 、计算输入图像散度div。

        (4)、迭代训练:

                a、对滤波器核拆解。

                b、对div图像进行重建。

                e、计算重建图像和原始输入图像均值差,迭代更新滤波器。

三、效果对比

        将如下图像进行图像散度融合,得到对应散度图信息。

 

        根据散度信息和训练好的滤波器核进行图像重建,得到结果图(左边为本文算法结果,右边为fft版本泊松重建结果):

 

        可以看到融合过度上和泊松版本基本持平,但是需要注意的是本文算法重建之后的图像整理亮度,对比原版泊松效果,会存在轻微差异。

        运行时间上:原始版本,处理一张80x40x3的图,花了42秒左右。

        fft加速版本,处理一张512x512x3的图,花了大概250ms左右。

        convpyr_small版本,处理一张512x512x3的图,花了大概40ms左右。

四、代码地址

包含了论文完整matlab版本和我这边本地复现的c++散度重建部分:

https://github.com/yulinghan/ImageQualityEnhancement/tree/master/image_fusion/convpyr_small_poisson

http://www.xdnf.cn/news/4878.html

相关文章:

  • 单调栈所有模版型题目(1)
  • Maven 处理依赖冲突
  • 【IDEA_Maven】(进阶版)永久性的更改IDEA中每个项目所依赖的Maven默认配置文件及其仓库路径
  • 学习心得《How Global AI Policy and Regulations Will Impact Your Enterprise》Gartner
  • 七、Hadoop 历史追踪、数据安全阀与 MapReduce初体验
  • WORD压缩两个免费方法
  • Java 集合体系深度解析面试篇
  • Java如何获取电脑分辨率?
  • 虚拟文件系统
  • 正大视角下的结构交易节奏:如何借助数据捕捉关键转折
  • java-反射精讲
  • 1236. 递增三元组
  • STL?vector!!!
  • spring ai alibaba 使用 SystemPromptTemplate 很方便的集成 系统提示词
  • U9C-SQL-采购订单视图
  • RGB矩阵照明系统详解及WS2812配置指南
  • 机器学习-无量纲化与特征降维(一)
  • flask开启https服务支持
  • 基于WSL用MSVC编译ffmpeg7.1
  • O2OA(翱途)服务器故障排查
  • 【AI提示词】蝴蝶效应专家
  • 【wpf】12 在WPF中实现HTTP通信:封装HttpClient的最佳实践
  • 【递归,搜索与回溯算法篇】专题(一) - 递归
  • 初学python的我开始Leetcode题8-4
  • vue教程(vuepress版)
  • 深入理解二叉树(2)
  • Music AI Sandbox:打开你的创作新世界
  • 简单说明.nii.gz文件数据结构
  • QVariant 的核心用途
  • Springboot整合kafka简单使用