Written by Samson Mulder @ Samsonlab.com

For more information visit http://www.samsonlab.com

  最近国外的Open Course很火。很多同学喜欢看斯坦福,麻省的公开课程。但是国产大学生最大的悲剧就是,不愿做作业。很多人看看公开课,看完也就结束了,很少有人会去做他们的课堂作业。大学期间看了斯坦福的Machine learning,很是喜欢。特别是里面那辆自动导航的车子和三维重建的技术。自动导航的车子终于在大学期间的飞思卡尔比赛中切实的做了一下。而三维重建技术确实很难。直到现在也还没能做出一个demo来。想来觉得自己是一次台阶跨的太高,没有一个循序渐进的过程。于是便找了布朗大学(Brown University)的计算机视觉课程,按照他们的project,有浅到难,可能会好一点。

  有兴趣的同学可以参考这个链接:http://www.cs.brown.edu/courses/csci1950-g/

  今天便讨论下proj 2, poisson image blending

  说起泊松,可以顺便提及一下泊松同学的老师,拉普拉斯。学图像或是信号的,一定对拉普拉斯算子和拉普拉斯卷积很熟悉。在泊松图像融合出现之前,也有一种叫Laplacian pyramid blending的融合算法。两者的效果可看下图:

无敌window画图融合 Poisson blend Laplacian

  (图像由布朗大学Steve Gomez 提供)

  泊松融合的关键是要通过求解poisson equation来得到变换后的像素。

泊松方程

  泊松方程是数学中一个常见于静电学、机械工程和理论物理的偏微分方程。方程形式如下:

  Δf =−ρ

  这里的 Δ 代表的是拉普拉斯算子,

  Δ≡ ∂ 2 ∂ 2x+∂2∂2y

  而 f 和 ρ 可以是在流形上的实数或复数值的方程。其中ρ可以表示为ρ=ρ(x,y)的形式。

泊松图像编辑

  泊松图像编辑是泊松方程的一个重要应用,首先提出该应用的是Poisson image editing. SIGGRAPH 2003,该文章对现在的图像编辑技术有着非常重要的影响,随后的几年又出现了很多类似的图像编辑方法,如 [Jiaya Jia et al. Drag and-drop pasting]于2006年提出了最优的融合边界用于改进泊松图像编辑的效果,[Zeev Farbman et al. coordinates for instant image cloning]在SIGGRAPH 2009中提出了使用Mean-Value coordinates用于计算基于梯度域的图像编辑,该方法实现简单且运行速度快,从而避免了求解复杂的泊松方程。下面通过几个典型的应用来说明泊松方程在图像编辑中的强大功能。

无缝融合

  • 传统的图像融合
    1. 精确地选择融合区域:过程单调乏味且工作量大,常常无法得到好的结果
    2. Alpha-Matting:功能强大,但是实现复杂
  • 基于Poisson方程的无缝融合
    1. 选择融合区域的过程简单且方便
    2. 最终可以得到无缝融合的结果
  • 因此,我们选择基于Poisson方程的方法进行图像的无缝融合!!

为什么将泊松方程应用到图像中

  • 很容易在图像的梯度域中进行应用
    1. 通过局部的图像编辑→ 全局融合的效果
    2. 无缝融合的应用 - 图像合成, 图像编辑, 图像拼接

变分法的解释泊松图像编辑

  其中,Delta I_A表示融合图像块的梯度,上面的变分方程的意义表明我们的无缝融合是以源图像块内梯度场为指导,将融合边界上目标场景和源图像的差异平滑地扩散到融合图像块I中,这样的话,融合后的图像块能够无缝地融合到目标场景中,并且其色调和光照可以与目标场景相一致。

基于泊松方程的图像编辑实例

  图像合成

  如下图所示,我们分别用两种不同的方法来进行图像融合:

  

  该图是简单的图像拷贝,如右图所示,此时的结果很不自然,有明显的边界。

  

  该图是基于Poisson的图像编辑效果图,如右图所示,此时结果图中没有明显的边界,源图像块无缝且自然地融合到了天空中。

图像无缝拼接

  下面是基于图像的无缝拼接的结果,该图由25张图像拼接而成,每张图像表现的是沙滩上不同姿势的小朋友,通过泊松融合,产生了无缝、自然且有趣的新图像。

  

图像编辑

  下图是图像编辑的结果,通过改变花朵的融合边界,将其重新融合到图像中,从而可以自然地改变其色调,呈现出新的视觉效果。

  

  本段摘自浙江大学,原作张赟。

  理论方面就大约讲到这里了。本人不才,理论方面只能做到只可意会,不可言传的境界,所以只能将一些大牛的著作整合一下,希望对初学者有些帮助。

  最后我会在最近将自己编写的poisson image editing算法发布于Google code,license是GNU public license,希望对各位同学们有所帮助。

  发布地址:http://code.google.com/p/imageblending/

泊松图像编辑(Poisson image editing)相关推荐

  1. 图像融合之泊松编辑(Poisson Editing)(1):简略语言概述算法

    http://blog.csdn.net/u011534057/article/details/68922197 原作者:Chris Tralie 简介 泊松图像编辑是一种全自动的"无缝融合 ...

  2. 【计算机图形学】poisson Image Editing泊松图像融合算法

    poissonImageEditing 1. 概述 为了解决将源图像的一部分区域ROI(Region of Interest)直接复制到目标图像时,边界过渡不自然的问题,如下图中间所示.本论文提出se ...

  3. Poisson Image Editing 泊松融合 matlab代码完整

    做相关的实验,发现竟然没找到的能直接用的matlab代码,于是 google一下. 原理我觉得这个就讲的挺好的:https://blog.csdn.net/hjimce/article/details ...

  4. 泊松融合(Poisson blend)

    原文地址:http://www.cnblogs.com/CVFans/p/4475885.html 最近国外的Open Course很火.很多同学喜欢看斯坦福,麻省的公开课程.但是国产大学生最大的悲剧 ...

  5. 文献阅读 - Poisson Image Editing

    1 泊松图像编辑(Poisson Image Editing ) 泊松图像编辑(Poisson Image Editing)的核心观点是图像融合时,用色彩梯度代替色彩强度可以产生更真实的效果. 经无缝 ...

  6. 泊松图像编辑(Possion Image Edit)原理、实现与应用

    虽然是2003年的文章了,但是由于其扎实的数学基础和至今看来都极其出色的效果,对每一个图像处理领域的学习者仍然是一篇值得一读的好文章. 本文同步发于Github.io,转载请注明来源 文章内容为参考论 ...

  7. matlab 狄利克雷函数图像,Poisson image editing算法实现的Matlab代码解析

    之前我发了数篇系列博文来仔细研究Poisson Image Editing算法,每次重新审视和深入,仿佛都能有更为深刻的认识和很大的收获.这应该算是我这个系列的完结篇,会用用Matlab代码一点一点的 ...

  8. Poisson image editing算法实现的Matlab代码解析

    之前我发了数篇系列博文来仔细研究Poisson Image Editing算法,每次重新审视和深入,仿佛都能有更为深刻的认识和很大的收获.这应该算是我这个系列的完结篇,会用用Matlab代码一点一点的 ...

  9. R语言泊松分布函数Poisson Distribution(dpois, ppois, qpois rpois)实战

    R语言泊松分布函数Poisson Distribution(dpois, ppois, qpois & rpois)实战 目录 R语言泊松分布函数Poisson Distribution(dp ...

最新文章

  1. 终端打不开(右键和快捷键)?因为phthon?
  2. 参观 Google 总部是一种什么体验?
  3. nvr服务器系统,【64路IPC网络存储服务器(WNVR)】 - 太平洋安防网
  4. 使用python完成冒泡排序_python 冒泡排序优化,用递归实现冒泡排序
  5. 三极管放大电路三种类型
  6. 两个分数化简比怎么化_我学《分数的意义》心得
  7. 使用 Visual Studio 2019 批量添加代码文件头
  8. Silverlight 2 搜索照片
  9. Redis通过哨兵模式实现主从复制的分布式
  10. [工具向]__关于androidstudio工具使用过程中学习到的一些知识点简记
  11. 拓端tecdat:R语言用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化
  12. Audio:Android-TinyAlsa架构 Mixer API
  13. 【创业】产品开发:什么是敏捷产品开发?
  14. Linux内存uncache区域拷贝优化
  15. pandas数据分组聚合——groupby()、aggregate()、apply()、transform()和filter()方法详解
  16. 如何更电计算机共享名称,手机电脑电视之间如何共享、投屏?
  17. PS 图像调整算法——反相
  18. 夏普电视android应用程序,教你解决夏普电视出现的“应用程序未安装”问题
  19. 入手评测 海信65e7g pro和雷鸟65r645c 选哪个
  20. 是否必须支持虚拟化的CPU才能安装64位系统?

热门文章

  1. Hive SQL— 连续发单天数
  2. 有效解决package ‘xxxx‘ is not in GOROOT
  3. 保姆式学习,解决夜神模拟器ADB版本不一致问题
  4. yolov3与yolov4效果对比_知识精讲 | Yolov3和Yolov4核心内容、代码梳理_创事记(5)
  5. QChart数据可视化应用
  6. Windows程式开发设计指南(十七)文字和字体
  7. spring 组建及核心内容的简介(一)
  8. Linux无界面创建Oracle数据库实例
  9. 【Python4CFD】笔记step9-12
  10. Python+Vue计算机毕业设计酒店管理系统g72sp(源码+程序+LW+部署)