d88尊龙官方网站

关于我们

您当前所在位置: 首页 > 关于我们 > 公司荣誉

从泊松方程的解法聊到泊松图像融合

发布日期:2025-08-01  浏览次数:

  这篇文章的实现,无关目前算法领域大火的神经网络,而是基于泊松方程推导得出。

  很多朋友比较熟悉概率论里面的泊松分布。泊松方程,也是同一个数学家泊松发明的。但却和泊松分布没有什么关系,是泊松物理学领域提出的一个偏微分方程。

  比较熟悉,分别表示二阶微分(直角坐标系下的散度)、一阶微分(直角坐标系下的梯度)。

  连续空间中的微分计算,就是大学里微积分那一套公式。但是在计算机的世界里,数据都是在离散空间中进行表示,对于图像而言,基本的计算单元就是像素点。让我们从最简单的情形,一维数组的微分说起:

  ,上面的微分算式的结果会逐渐逼近真实的微分值。对于图像而言,这里 h 最小可分割单元是像素,也就表示像素间的间距,可视为 1。再看看,二阶微分的公式,是不是可以看成

  至此,不难理解,离散数据(例如图像)上的微分操作完全可以转换为卷积操作。

  已知图像点二阶微分值(直角坐标系下即散度 div)的情况下,求解各个图像点的像素值。

  因此,我们需要另加入至少 12 个更多的方程式,也就是说,需要把剩余 12 个边界点的值确定,即需要确定边界条件。边界一般符合 2 种常见的边界条件:

  Neumann 边界,译为纽曼边界或黎曼边界,给出函数在边界处的二阶导数值;

  Dirichlet 边界,狄利克雷边界,给出边界处函数在边界处的实际值。

  但给定边界条件之后,就可以有 16 个方程式组成的方程组了,矩阵化表示此方程组之后,得到形式为

  ,大家就应该放松了,不就是解方程嘛,用雅可比迭代法或者高斯赛德尔迭代法来求解就 OK 了。

  背景知识储备好了后,让我们把目光拉回到论文《Poisson Image Editing》上。

  重点关注两个词:内容平滑、边界一致。平滑是什么?可以理解成图像前景、背景梯度相同。边界一致是指什么?可以理解成在边界上像素值相同。再用一张图来说明:

  这里如果接触过泛函的朋友会比较开心,没接触过的朋友可以先看看欧拉-拉格朗日方程。

  因为需要平滑,div v取值需要同时参考前景图片和背景图片,可以直接等于前景像素的散度,也可以在前景和背景在同一点像素的散度进行某种组合得到(论文中在 Selection cloning 和 Selection editing 章节有讨论各自合适的场景,但个人以为这里采取学习的方法应该更鲁棒,而不是用固定的策略来区分)。anyway,div v是可以计算的已知量;

  因为需要保持边界一致,边界条件上像素值等于背景图片即可。当然也可以做一些策略,但同样也可以计算得到的已知量。

  现在很轻松了,边界条件已知、散度已知,在离散空间中求解泊松方程中的 f,参考上一节的求解过程即可。

  使用的时候,需要三张图片:前景图、背景图、mask 图(指明前景图中需要融合的区域,最简单的就是直接等于前景图大小的 mask,待融合区域是白色,其余位置黑色)。

  下面我们使用 OpenCV 的 Python 接口来动手试试,用到以下两张图以及一段代码:

在线客服
服务热线

服务热线

微信咨询
返回顶部
X

截屏,微信识别二维码

微信号:

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!