1. 程式人生 > >影象融合之泊松融合(Possion Matting)

影象融合之泊松融合(Possion Matting)

前面有介紹拉普拉斯融合,今天說下OpenCV泊松融合使用。順便提一下,泊松是拉普拉斯的學生。

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

  

  泊松融合是將一個src放進dst中,放置位置根據dst中P點為中心的一個前景mask大小範圍內。融合過程會改變src影象中顏色以及梯度,達到無縫融合效果。

  需要注意一點是,中心點P點的設定,最好是先根據前景mask算一個外接矩形框Rect,取Rect的中心點為P,保證Rect能夠放進dst中,不會越界就好。

  效果展示如下:

  src                                                                  dst          

     

mask                                                                     blend

    

示例程式碼:

 1 #include <opencv2\opencv.hpp>
 2 #include <iostream>
 3 #include <string>
 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 }

相關推薦

影象融合融合Possion Matting

前面有介紹拉普拉斯融合,今天說下OpenCV泊松融合使用。順便提一下,泊松是拉普拉斯的學生。   OpenCV中集成了泊松融合,API為seamless Clone(),函式原型如下:      泊松融合是將一個src放進dst中,放置位置根據dst中P點為中心的一個前景mask大小範圍內。融合過程會改變

高光譜影象處理目標檢測技術CEM演算法影象處理

高光譜影象處理之目標檢測技術一、高光譜影象處理之目標檢測1、高光譜影象目標檢測的發展趨勢和研究現狀:   20世紀80年代末,美國的一些研究機構開始利用高光譜影象資料進行目標檢測方面的研究。自上世紀九十

Poisson BlendingSeamless clone)研究和實現;融合

Poisson Blending 實現了非常棒的效果,可以看 《自己動手,實現“你的名字”濾鏡》 http://www.cnblogs.com/jsxyhelu/p/7216795.html 它的原理在論文《Poisson Image Editing》中進行了比較詳細的闡述,但是英文的

數字訊號產生分佈的隨機數

uniform.h #pragma once class uniform { private:  double a, b, generate_num;  int * seed;  int s;  int M, N, i, j; public:  uniform()  {

Python影象處理圖片文字識別OCR

OCR與Tesseract介紹   將圖片翻譯成文字一般被稱為光學文字識別(Optical Character Recognition,OCR)。可以實現OCR 的底層庫並不多,目前很多庫都是使用共同的幾個底層OCR 庫,或者是在上面進行定製。   Tess

影象處理Non-Local MeansNM 非區域性均值

1、非區域性均值去噪是空域濾波的一個重大突破,它利用自然影象的冗餘,基本思想是:當前畫素點的灰度值與影象中所有與其結構相似的畫素點加權平均得到。如何衡量結構相似的畫素點,也即如何確定權值係數?其做法是:對於每一個畫素點的權值,採用以該畫素點為中心的影象子塊(7*7)或(9

影象特徵 Haar-like特徵計算方法-積分圖

1.積分圖(Integral Image)類似動態規劃的方法,主要的思想是將影象從起點開始到各個點所形成的矩形區域畫素之存在陣列中,當要計算某個區域的畫素和時可以直接從陣列中索引,不需要重新計算這個區域的畫素和,從而加快了計算。 ABCD是四個區域,包含若

視訊、圖形影象處理Opencv技術記錄、Opencv教程影象處理imgproc模組平滑影象

目標 在本教程中,您將學習如何使用OpenCV函式應用各種線性濾鏡來平滑影象,例如: 理論 注意 下面的解釋屬於Richard Szeliski和LearningOpenCV的計算機視覺:演算法和應用一書 平滑,也稱為模糊,是一種簡單且經常使用的影象處理操作。

影象分割霍夫變換Hough

在影象分割邊緣檢測一文中介紹了一些有效的邊緣檢測方法,但在實際中由於噪聲和光照不均等因素,使得很多情況下獲得的邊緣點不連續,必須通過邊緣連線將它們轉換為有意義的邊緣。一般的做法是對經過邊緣檢測的影象進一步使用連線技術,從而將邊緣要素組合成完整的邊緣。霍夫變換就是

視訊、圖形影象處理Opencv技術記錄、均衡直方圖

目標 在本教程中,您將學習: 什麼是影象直方圖以及為什麼它有用 理論 什麼是影象直方圖? 它是影象強度分佈的圖形表示。 它量化了所考慮的每個強度值的畫素數。 什麼是直方圖均衡?

轉載-Python影象處理圖片文字識別OCR

點選開啟連結   segmentFault_jclian91_Python影象處理之圖片文字識別(OCR)OCR與Tesseract介紹  將圖片翻譯成文字一般被稱為光學文字識別(Optical Character Recognition,OCR)。可以實現OCR 的底層庫並

Linux修改主機名永久生效

etc 想要 常常 重新啟動 重新 cnblogs 登錄 用戶 sysconf Linux系統安裝好後,都會有默認的主機名,這裏以CentOS系統為例,默認的主機名為localhost.localdomain,為了便於使用,我們常常需要修改主機名,下面演示的是永久更改主機名

ActiveMQ22:Consumer高級特性消息分組Message Groups

jms message groups activemq 一、簡介Message Groups就是對消息分組,它是Exclusive Consumer功能的增強。邏輯上,Message Groups 可以看成是一種並發的Exclusive Consumer。跟所有的消息都由唯一的consumer處理

Python學習路——第二彈認識python

內容 代碼結構 計算 戰術 個人 方法 十分 現在 目的   第一彈中我是說明了學習python的目的,主要為了自我提升的考慮,那麽為什麽我對python感興趣,python有什麽用了?本章就簡單說明下。   python的用途很廣,而且代碼十分簡潔,不像java、c等其他

PHP後臺調試手段新手必備

php debug 輸出變量 file_put_contents error_log 作為一個剛剛接觸世界上最好的語言php的新手,前端js可以直接console.log調試,在調試後端rpc的類半天找不到打印輸出的方法,普通的print和echo既不能輸出到頁面也不能輸出到文件,痛苦了半

開啟Python取經路-CLASS-6Part 1

int code 中標 cnblogs 環境 執行 變量 spa -c 第一個python程序 HELLO WORLD 1 print("hello world") 單行註釋:# 多行註釋:‘‘‘....‘‘‘或者"""....""" 在linux編程中,要在程序中

列表操作定義,切片取元素Python

fin 元組 括號 all call 切片 python define 表操作 學完列表,元組,字典,集合以後,發現他們長的有些像,傻傻分不清,現在回顧下,以代碼為例進行分析每一種操作的屬性。(英語不佳,錯誤請忽略) 舉栗如下:names = ["hbb",‘tian‘,

2016"百度星" - 初賽Astar Round2A--HDU 5690 |數學轉化+快速冪

分享 otto lld 方法 can a* sca uic left Sample Input 3 1 3 5 2 1 3 5 1 3 5 99 69 Sample Output Case #1: No Case #2: Yes Case #3: Yes

排序算法歸並排序Merge Sort

ast 子序列 排序 ges 一個 delet oid ear sys 基本思想   歸並(Merge)排序法是將兩個(或兩個以上)有序表合並成一個新的有序表,即把待排序序列分為若幹個子序列,每個子序列是有序的。然後再把有序子序列合並為整體有序序列。 代碼實現    #i

【第二篇】ASP.NET MVC快速入門數據註解MVC5+EF6

red 數據庫結構 varchar model 菜單 錯誤提示 edi 還需 問題 目錄 【第一篇】ASP.NET MVC快速入門之數據庫操作(MVC5+EF6) 【第二篇】ASP.NET MVC快速入門之數據註解(MVC5+EF6) 【第三篇】ASP.NET MVC快速入