博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图像融合之泊松融合(Possion Matting)
阅读量:4501 次
发布时间:2019-06-08

本文共 1021 字,大约阅读时间需要 3 分钟。

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

  泊松融合的原理请参考这篇博文,讲的非常详细,此处不再赘述。

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

  

  

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

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

  效果展示如下:

  src                                                                  dst          

     

mask                                                                     blend

    

 

示例代码:

1 #include 
2 #include
3 #include
4 5 using namespace std; 6 using namespace cv; 7 8 9 void main()10 {11 Mat imgL = imread("data/apple.jpg");12 Mat imgR = imread("data/orange.jpg");13 14 int imgH = imgR.rows;15 int imgW = imgR.cols;16 Mat mask = Mat::zeros(imgL.size(), CV_8UC1);17 mask(Rect(0,0, imgW*0.5, imgH)).setTo(255);18 cv::imshow("mask", mask);19 Point center(imgW*0.25, imgH*0.5);20 21 Mat blendImg;22 seamlessClone(imgL, imgR, mask, center, blendImg, NORMAL_CLONE);23 24 cv::imshow("blendimg", blendImg);25 waitKey(0);26 }

 

 

   

 

转载于:https://www.cnblogs.com/riddick/p/9000281.html

你可能感兴趣的文章
[Database] Oracle 中的where 可以后接group by
查看>>
AsyncTask和Handler
查看>>
通过HttpClient调用服务
查看>>
请求不携带cookie问题
查看>>
AOSP、AOKP、CM的区别
查看>>
ES6 类
查看>>
如何将qlv格式的腾讯视频转换为mp4格式
查看>>
leetcode 416. Partition Equal Subset Sum
查看>>
leetcode 695. Max Area of Island
查看>>
Linux命令之乐--telnet
查看>>
Jupyter Notebook 快速入门
查看>>
CompositeTransform 类11111111
查看>>
c#的DateTime.Now函数详解
查看>>
Django会话之cookie(手动设置)
查看>>
decorator pattern and linked list
查看>>
synchronized详解
查看>>
Runtime类 调用windows程序。
查看>>
MCV 添加filter操作
查看>>
正确配置Linux系统ulimit值的方法
查看>>
redis安装与参数说明
查看>>