前面有介绍拉普拉斯融合,今天说下OpenCV泊松融合使用。顺便提一下,泊松是拉普拉斯的学生。

  泊松融合的原理请参考这篇博文https://blog.csdn.net/u011534057/article/details/68922319,讲的非常详细,此处不再赘述。

  OpenCV中集成了泊松融合,API为seamless Clone(),函数原型如下:

  

  

  泊松融合是将一个src放进dst中,放置位置根据dst中P点为中心的一个前景mask大小范围内。融合过程会改变src图像中颜色以及梯度,达到无缝融合效果。

  需要注意一点是,中心点P点的设置,最好是先根据前景mask算一个外接矩形框Rect,取Rect的中心点为P,保证Rect能够放进dst中,不会越界就好。

  效果展示如下:

  src                                                                  dst

     

mask                                                                     blend

    

示例代码:

 #include <opencv2\opencv.hpp>
#include <iostream>
#include <string> using namespace std;
using namespace cv; void main()
{
Mat imgL = imread("data/apple.jpg");
Mat imgR = imread("data/orange.jpg"); int imgH = imgR.rows;
int imgW = imgR.cols;
Mat mask = Mat::zeros(imgL.size(), CV_8UC1);
mask(Rect(,, imgW*0.5, imgH)).setTo();
cv::imshow("mask", mask);
Point center(imgW*0.25, imgH*0.5); Mat blendImg;
seamlessClone(imgL, imgR, mask, center, blendImg, NORMAL_CLONE); cv::imshow("blendimg", blendImg);
waitKey();
}

图像融合之泊松融合(Possion Matting)的更多相关文章

  1. 图像融合之拉普拉斯融合(laplacian blending)

    一.拉普拉斯融合基本步骤 1. 两幅图像L,R,以及二值掩模mask,给定金字塔层数level. 2. 分别根据L,R构建其对应的拉普拉斯残差金字塔(层数为level),并保留高斯金字塔下采样最顶端的 ...

  2. 图像sift配准后融合

    image rectification 图像校正 在配准时,先找到特征点,找到特征点后剔除伪匹配点. 然后针对两幅图像做几何矫正(一般通过估计出来的仿射矩阵完成). 这部完成后,图像可以匹配了,但是两 ...

  3. 基于均值坐标(Mean-Value Coordinates)的图像融合算法的优化实现

    目录 1. 概述 2. 实现 2.1. 原理 2.2. 核心代码 2.3. 第二种优化 3. 结果 1. 概述 我在之前的文章<基于均值坐标(Mean-Value Coordinates)的图像 ...

  4. paper 101:图像融合算法及视觉艺术应用

    1:基于泊松方程的图像融合方法,利用偏微分方程实现了不同图像上区域的无缝融合.比较经典的文章: P. Pérez, M. Gangnet, A. Blake. Poisson image editin ...

  5. opencv图像融合(给人脸添加一个眼镜)

    基于dlib68点人脸检测的小功能实现 图像旋转找的现成的方法,稍稍麻烦点的地方就是mask处理,虽然目的达到了,但是效果一般 import numpy as np import cv2 as cv ...

  6. 基于均值坐标(Mean-Value Coordinates)的图像融合算法的具体实现

    目录 1. 概述 2. 实现 2.1. 准备 2.2. 核心 2.2.1. 均值坐标(Mean-Value Coordinates) 2.2.2. ROI边界栅格化 2.2.3. 核心实现 2.2.4 ...

  7. paper 116:自然图像抠图/视频抠像技术梳理(image matting, video matting)

    1. Bayesian Matting, Chuang, CVPR 2001.http://grail.cs.washington.edu/projects/digital-matting/paper ...

  8. Sensor fusion(传感器融合)

    From Wikipedia, the free encyclopedia 来自维基百科,免费的百科Sensor fusion is combining of sensory data or data ...

  9. 数据融合(data fusion)原理与方法

    数据融合(data fusion)原理与方法 数据融合(data fusion)最早被应用于军事领域.     现在数据融合的主要应用领域有:多源影像复合.机器人和智能仪器系统.战场和无人驾驶飞机.图 ...

随机推荐

  1. 20175316 盛茂淞 实验一 Java开发环境的熟悉

    20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...

  2. Oracle partition by 使用说明

    --用法详解 0.select * from wmg_test;     ---测试数据 1.select v1,v2,sum(v2) over(order by v2) as sum     --按 ...

  3. TensorFlow 计算模型 -- 计算图

    TensorFlow是一个通过计算图的形式表述计算机的编程系统 TensorFlow程序一般分为两个阶段,第一个阶段需要定义计算图中所有的计算(变量) 第二个阶段为执行计算 如以下代码 import ...

  4. springmvc接收数组方式总结

    1.接受正常的数组 如param1=aaa&param1=bbb&param1=3 对于这种,在实体参数中,使用String param1[] 这种参数既可以获取数组的值 2.接受数组 ...

  5. CentOS6最佳实践

    一  安装常用软件 常用目录结构 源文件目录  /application,原包文件及解压文件 如  /application/Python-3.6.0.tgz 软件配置目录 /usr/local/ 如 ...

  6. 我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比(转载)

    转载自:https://www.sojson.com/blog/48.html 前言: MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 场景: ...

  7. 背水一战 Windows 10 (66) - 控件(WebView): 监听和处理 WebView 的事件

    [源码下载] 背水一战 Windows 10 (66) - 控件(WebView): 监听和处理 WebView 的事件 作者:webabcd 介绍背水一战 Windows 10 之 控件(WebVi ...

  8. spark中RDD的transformation&action

    简介: 1,transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD 2,action是得到一个值,或者一个结果(直接将RDDcache到 ...

  9. jQuery的JS库在本地运行项目时提示无法加载

    最近公司有个项目在我本地运行时引用本地的jquery.js,浏览器提示无法加载 <script src="/js/newperson/jquery-1.11.3.min.js" ...

  10. Android Service用法知识点的讲解

    Android Service 学习Service相关知识点: android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务) ...