2012-05-29 53 views
2

我縫了兩幅圖像,但在最終圖像中有可見的接縫。我正在嘗試使用Alpha混合來移除該接縫。我知道Alpha混合是使用cvAddweight()函數應用的,但在此函數參數是兩個圖像,alpha,beta,gamma和desitination。我正在服用gamma=0,alpha=0.6,beta=0.4。什麼將是我的兩個輸入信號源圖像和目標圖像作爲我的代碼的最後一部分是這個 - >Alpha混合刪除圖像中的接縫

IplImage* WarpImg = cvCreateImage 
(cvSize(T1Img->width*2, T1Img->height*2), T1Img->depth, T1Img- >nChannels); 
cvWarpPerspective(T1Img, WarpImg, &mxH); 
cvSetImageROI(WarpImg, cvRect(0, 0, T2Img->width, T2Img->height)); 
cvCopy(T2Img, WarpImg); 
cvResetImageROI(WarpImg); 
cvNamedWindow("WarpImg Img",1); 
cvShowImage("WarpImg Img", WarpImg); 
cvSaveImage("save.jpg",WarpImg); 

我的最終圖像enter image description here

+0

它看起來好像你已經獲得了正確的扭曲矩陣,看到在前面的桌子,在右邊的圖像中,桌子已經完成,在左邊的圖像中瓶子出現懸在地板上。我認爲你應該研究一下你得到你的扭曲矩陣mxH的方法。 – Chris

+0

@Chris好的。我會檢查一下,但現在我主要關心的是去除seam.Anyways謝謝你。 –

回答

0

我不得不承認,我不認爲alpha混合是你的答案。由於照明/曝光的差異,看起來在那裏。阿爾法混合是一種基本上通過對兩個圖像顏色進行加權平均的方式,通過另一個圖像可見的方式。您的右側和左側圖像由黑色支持。如果你只是阿爾法混合,那麼你基本上會用黑色背景來加權你的圖像。由此產生的效果將只是兩個圖像變暗。可能的其他方法可能是查看兩個圖像在平均圖像上的平均顏色,並將亮度差異上調或下調50%,另一種方法則相反調整50%另一個下降,50%使整體亮度跳躍只有50%的差異)。

另一個可能會做一個更復雜的圖像直方圖技術,你試圖擴大或縮小一邊的圖像的直方圖,以及對齊它們,並重新分配你的顏色(在這種情況下灰度)通過新的直方圖。