图像泊松融合(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

相关推荐
楚山之石13 小时前
【Medical Image Analysis】深度学习医学图像合成综述:伪CT、合成MRI与合成PET的架构、性能与临床边界
图像处理·人工智能·学习·mr·mri
深圳安锐科技有限公司17 小时前
从成像尺度到亚像素解算:变焦视觉位移监测如何让远近断面都稳
图像处理·人工智能·深度学习·算法·计算机视觉·系统架构·结构健康监测
W_326001 天前
Python 图像处理第二十八章|OpenCV 形态学操作进阶:腐蚀、膨胀、开运算、闭运算、梯度、顶帽黑帽
图像处理·人工智能·python·opencv·计算机视觉
ck0135791 天前
视频添加水印的实践:文字叠加、透明 PNG 与时间区间设置
图像处理·测试工具·音视频·视频
Angeldream1231 天前
第 9 章 医学影像项目实战
大数据·图像处理·人工智能·python·医学影像处理
小豆庄2 天前
视频素材处理时的隐私盲区:云处理与本地处理的边界在哪
数据库·图像处理·视频·敏捷流程
陈嘿萌2 天前
Fusion Anything Model:面向通用多模态融合的基座模型
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础
~~刘杨2 天前
用 Python 批量处理商品图:抠图、高清放大与图生视频(同步 API 完整示例)
图像处理·python·aigc
hahaha60162 天前
Unsharp Masking算法综述
图像处理·人工智能·计算机视觉
指针向南2 天前
怎么把PDF里的图片提取出来?5种方法和在线工具的坑
图像处理·人工智能·计算机视觉·pdf